Null Values and Joins

Jeśli nie ma wartości null w kolumnach tabel, że jest dołączony, wartości null nie pasują do siebie nawzajem.Występowanie wartości null kolumna z jednej z tabel, że jest dołączony mogą być zwracane tylko przy użyciu łączyć zewnętrznego (chyba że klauzula WHERE nie obejmuje wartości null).

Oto dwie tabele, każda ma wartość NULL kolumna, który będzie brać udział w sprzężeniu:

table1                          table2
a           b                   c            d
-------     ------              -------      ------
      1        one                 NULL         two
   NULL      three                    4        four
      4      join4

łączyć, który porównuje wartości kolumna a wobec kolumna c nie uzyska dopasowanie kolumna, które zawierają wartości NULL:

SELECT *
FROM table1 t1 JOIN table2 t2
   ON t1.a = t2.c
ORDER BY t1.a

Tylko jeden wiersz z 4 kolumna a i c zwracany jest:

a           b      c           d      
----------- ------ ----------- ------ 
4           join4  4           four   

(1 row(s) affected)

Wartości null, zwrócony z tabela bazowa są również trudno odróżnić od wartości null, zwrócone przez łączyć zewnętrzne.Na przykład następujące SELECT Instrukcja nie lewego łączyć zewnętrznego w tych dwóch tabel:

SELECT *
FROM table1 t1 LEFT OUTER JOIN table2 t2
   ON t1.a = t2.c
ORDER BY t1.a

Here is the result set.

a           b      c           d      
----------- ------ ----------- ------ 
NULL        three  NULL        NULL 
1           one    NULL        NULL 
4           join4  4           four   

(3 row(s) affected)

Wyniki nie należy wprowadzać go można łatwo odróżnić NULL w danych z NULL które reprezentuje błąd przyłączyć. Jeśli wartości null są obecne w danych, że jest dołączony, zazwyczaj wygodniej jest, aby pominąć je z listy wyniki za pomocą zwykłego łączyć.