代码之家  ›  专栏  ›  技术社区  ›  mohammad

使用SQL中另一个表的查询结果查找表中的记录

  •  1
  • mohammad  · 技术社区  · 3 年前

    我有两张桌子

    组:

    id  group_name
    --------------
    1   G1
    2   G2
    3   G3
    

    权限:

    PersId  Groups_id
    -----------------
    10001   1
    10001   2
    10002   2
    10003   3
    

    这意味着10001可以访问G1和G2,10002可以访问G2和G3。

    我想写一个查询来查找例如10001可以访问的组名称。

    我写了一个SQL查询,如下所示:

    SELECT * 
    FROM Permissions 
    WHERE PersId.id = [p_id]
    

    但是这个查询只返回1和2。我想要一些东西来返回G1和G2

    1 回复  |  直到 3 年前
        1
  •  2
  •   lemon    3 年前

    您可以连接两个表以获得如下正确结果:

    SELECT Permissions.persid,group_name 
    FROM       Permissions 
    INNER JOIN Groups 
            ON Permissions.Groups_id = Groups.Id
    WHERE Permissinos.PersId = 10001
    

    此查询将返回以下输出:

    持久的 组名称
    10001 G1
    10001 G2
    推荐文章