1

我有两张桌子,即

邀请函

  • 邀请ID
  • 用户身份
  • 电子邮件

用户

  • 用户身份
  • 用户名

我在两个表中都有数据

邀请表数据

29  NULL    test1@example.com   
40  8       test2@example.com                                                                       
41  8       test3@example.com     

用户表数据

8     someone@example.com

现在我想从表中选择所有数据Invitation,并且还想UsernameUsers表中选择Invitation.InvitationID等于Users.UserID.

我使用以下查询来选择数据

SELECT 
    Invitations.*, Users.UserName
FROM
    Invitations 
INNER JOIN
    Users ON Invitations.UserID = Users.UserID

但它只返回两行。我想从Invitation表中选择所有行。如果Invitation.UserIDnull那么Username也是null。我想要这样的输出:

 29  NULL   test1@example.com   Null
 40  8      test2@example.com   someone@example.com                                                                  
 41  8      test3@example.com   someone@example.com 
4

1 回答 1

4

您必须使用左连接:

SELECT Invitations.*, Users.UserName
FROM     Invitations left JOIN
              Users ON Invitations.UserID = Users.UserID
于 2012-11-29T07:36:08.237 回答