SQL Join和union All

时间:2013-06-09 21:49:01

标签: sql mysqli

我正在尝试在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;但我一无所获。谢谢

1 个答案:

答案 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)
相关问题