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

mysql-选择查询-连接

  •  0
  • Gopi  · 技术社区  · 14 年前

    我有两张桌子

    用户

    ID UserName
    1  Name1
    2  Name2
    3  Name3
    4  Name4
    5  Name5
    

    项目

    ID ItemName InsertedBy UpdatedBy
    1  Item1    1          4
    2  Item2    3          3
    3  Item3    2          5
    4  Item4    5          3
    5  Item5    4          5
    

    需要结果表

    ID ItemName InsertedBy UpdatedBy
    1  Item1    Name1      Name4
    2  Item2    Name3      Name3
    3  Item3    Name2      Name5
    4  Item4    Name5      Name3
    5  Item5    Name4      Name5  
    

    如何在单连接查询中实现这一点?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Michael Pakhantsov    14 年前
     SELECt Id, ItemName, u1.UserName InsertedBy, u2.UserName UpdatedBy
     FROM Item i, user u1, user u2
     WHERE i.InsertedBy = u1.Id
       AND i.UpdatedBy = u2.Id
    

    如果updatedBy可以为空,则查询将为:

     SELECt Id, ItemName, u1.UserName InsertedBy, u2.UserName UpdatedBy
     FROM Item i JOIN user u1 ON (i.InsertedBy = u1.Id)
     LEFT JOIN user u2 ON (i.UpdatedBy = u2.Id)
    
    推荐文章