zoukankan      html  css  js  c++  java
  • PostgreSQL查询数据(连接查询和子查询)

    原料

    --用户表
    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','123456');
    insert into "SysUser" ("UserName","Pwd") values ('username2','123456');
    insert into "SysUser" ("UserName","Pwd") values ('username3','123456');
    insert into "SysUser" ("UserName","Pwd") values ('username4','123456');
    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);
    View Code

    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"

    数据输出

  • 相关阅读:
    09 Django组件之用户认证组件
    二叉树的三种遍历(非递归)
    CoderForce 141C-Queue (贪心+构造)
    CoderForce 140C-New Year Snowmen(贪心)
    UVA-1663 Purifying Machine (最大匹配数)
    UVA-10801 Lift Hopping (最短路)
    UVA-1660 Cable TV Network (最小割)
    UVA-820 Internet Bandwidth (最大流)
    UVA-1336 Fixing the Great Wall(区间DP)
    棋盘分割(二维区间DP)
  • 原文地址:https://www.cnblogs.com/yuyuefly/p/9674585.html
Copyright © 2011-2022 走看看