2013-11-20 18 views
0

我的問題給出這種方式返回客戶及其訂單,包括沒有下訂單的客戶。如何加入,包括用NULL數據排

我寫這樣的代碼

SELECT A.custid, A.companyname, 
     B.orderid, B.orderdate 

FROM Sales.Customers as A 
    JOIN sales.orders as B 
    ON A.custid=B.custid; 

它的工作原理差不多吧,只是一個點,這行的也返回這樣行,其中orderidorderdate等於NULL

custid  companyname   orderid orderdate 
------  -------------  ------ --------- 
57   Customer WVAXS  NULL  NULL 

此外,我不能理解爲什麼我的代碼不能正常工作。

回答

4

使用左連接此:

SELECT A.custid, A.companyname, 
     B.orderid, B.orderdate 

FROM Sales.Customers as A 
    LEFT JOIN sales.orders as B 
    ON A.custid=B.custid; 

左連接包括從客戶表在發生匹配訂單表中的所有行,只有那些 - 這樣你可以有空爲B的列。

+0

是的,它的工作原理,忘記**外連接** – Rocketq