我正在尝试在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的任何信息。它仍然会有所有客户3信息表1但是空白信息不存在客户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;
但我一无所获。谢谢
答案 0 :(得分:1)
好的,你几乎在那里,你需要将第一个连接转换为LEFT JOIN:
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)