PostgreSQL查询数据(连接查询和子查询)
2024-10-18 15:12:22
原料
--用户表
create table "SysUser"(
"UserId" serial, --用户Id,自增
"UserName" character varying(50), --用户名
"Pwd" character varying(50), --密码
"Status" smallint, --状态
primary key("UserId") --设置UserId主键
)
--角色表
create table "SysRole"(
"RoleId" serial, --角色Id
"RoleName" character varying(50), --角色名称
primary key("RoleId")
)
--用户角色关系表
create table "SysUserRole"(
"UserId" integer,--用户Id
"RoleId" integer,--角色Id
primary key("UserId","RoleId")
) --测试数据
insert into "SysUser" ("UserName","Pwd") values ('username1','');
insert into "SysUser" ("UserName","Pwd") values ('username2','');
insert into "SysUser" ("UserName","Pwd") values ('username3','');
insert into "SysUser" ("UserName","Pwd") values ('username4','');
insert into "SysRole" ("RoleName") values ('Role1');
insert into "SysRole" ("RoleName") values ('Role2');
insert into "SysUserRole" ("UserId","RoleId") values (1,1);
insert into "SysUserRole" ("UserId","RoleId") values (2,2);
insert into "SysUserRole" ("UserId","RoleId") values (3,1);
insert into "SysUserRole" ("UserId","RoleId") values (3,2);
SysUser
SysRole
SysUserRole
1.查询某一用户拥有的所有角色
select * from "SysRole" where "RoleId" in (
select "RoleId" from "SysUserRole" where "UserId"=3
)
数据输出
2.查询某一角色下的所有用户
select * from "SysUser" where "UserId" in(
select "UserId" from "SysUserRole" where "RoleId"=1
)
数据输出
3.查询所有的用户角色信息
select u."UserName",r."RoleName" from "SysUserRole" m
left join "SysUser" u on m."UserId"=u."UserId"
left join "SysRole" r on m."RoleId"=r."RoleId"
order by u."UserName"
数据输出
最新文章
- javascript实现数据结构与算法系列:线性表的静态单链表存储结构
- HD1083 二分图,匈牙利算法
- Numpy之ndarray与matrix
- hdu1217Arbitrage--解题报告
- zend studio里面这块注释是用什么快捷键按出来的?
- 【译】使用Jwt身份认证保护 Asp.Net Core Web Api
- 最近最久未使用页面淘汰算法———LRU算法(java实现)
- 野路子码农系列(3)plotly可视化的简单套路
- haproxy使用演示--技术流ken
- PHP数组array_multisort排序详解
- nginx第三方库安装以及连接memcache
- js处理有序列表、js处理无序列表
- SpringMVC FistMVC详解
- java测试感受
- 关于Maven整合SSM项目中报错Invalid bound statement (not found):的问题解决
- android适配不同分辨率的手机
- Jquery easyui 重置按钮,easyui 清空表单,Jquery easyui 重置表单
- 关于android webview 设置cookie的问题
- JMeter Ant Task 生成的*.jtl打开之后request和response data是空的,怎样让其不是空的呢?
- touchscreem