0

我正在尝试在 SQL 中加入 3 个表。表格1

CustomerID   FirstName   LastName    Address       EmailAddress      
 1             bob               S             1111        xxx@yahoo.com
 2             jim               B             2222        777@yahoo.com
 3             hank              H             333         kkk@yahoo.com

表2

 CustomerID     Date    MemberID
   1           5/15/86  1
   2           5/16/86  2

表3

 CustomerID     Lengthofstay
   1               5
   2              16

如您所见,我在表 1 中有 3 个客户。我需要加入所有 3 个表。但是在表 2 和表 3 中,我需要它为 NULL,其中客户 3 没有表 2 和表 3 的任何信息。它仍然具有表 1 中的所有客户 3 信息,但不存在的空白信息客户 3 将为 NULL。

我试过这个,但它遗漏了客户 3:

SELECT      
A.CustomerID,
A.Firstname,
A.Lastname,
A.Address,
A.EmailAddress,
B.CustomerID,
B.Date,
B.memberID,
C.CustomerID,
C.LengthofStay

FROM TABLE1 as A
JOIN Table2 as B on ( A.CustomerID = B.CustomerID)
LEFT JOIN TABLE3 as C on ( A.CustomerId = C.CustomerID)

这遗漏了客户 3。我尝试过使用:

WHERE A.CustomerID IS NULL;但我一无所获。谢谢

4

1 回答 1

1

好的,你快到了,你需要将第一个连接转换为左连接:

SELECT      
A.CustomerID,
A.Firstname,
A.Lastname,
A.Address,
A.EmailAddress,
B.CustomerID,
B.Date,
B.memberID,
C.CustomerID,
C.LengthofStay

FROM TABLE1 as A
LEFT JOIN Table2 as B on ( A.CustomerID = B.CustomerID)
LEFT JOIN TABLE3 as C on ( A.CustomerId = C.CustomerID)
于 2013-06-09T21:58:32.133 回答