2013-11-20 6 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; 

Он работает почти сразу, за исключением одного пункта, то делаешь вернуть такие строки, где orderid и orderdate равно 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; 

Левый присоединиться включает все строки из таблицы Customers и только те, в таблице заказов, где происходит совпадение - таким образом, вы можете иметь нуль столбцов Б ,

+0

Да, это работает, забыть о ** Внешние соединения ** – Rocketq

Смежные вопросы