Programmer's Rules

SQL Server

Podstawy złączeń w SQL Server

Przegląd typów JOIN w SQL Server"

SQL Serverjob interview70-761

Przy wykonywaniu zapytania SELECT, w pierwszej kolejności w porządku logicznym wykonywana jest klauzula FROM. Ta faza powoduje powstanie tablei wirtualnej (w sensie logicznym - nie fizycznym), która jest następnie wykorzystywana przez kolejne fazy zapytania SELECT takie, jak klauzula WHERE. W przypadku wykorzystywania złączeń do powyższej tabeli wirtualnej dodawane są wiersze lub z niej usuwane.

Istnieją 3 rodzaje złączeń w Sql Server:

1. Złączenie wewnętrzne - oznaczane jako INNER JOIN lub JOIN.

Zwraca tylko te wiersze, które są dopasowane w obydwu tabelach wejściowych. Złączenie wewnętrzne w pierwszej kolejności tworzy produkt kartezjański (łączy każdy wiersz z jednej tabeli wejściowej z każdym wierszem drugiej tabeli wejściowej). Następnie, w zależności od klauzuli ON wiersze są filtrowane oraz usuwane są wiersze niedopasowane.

2. Złączenie zewnętrzne (LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN).

Zwraca wiersze z jednej tabeli wejściowej i pasujące wiersze z drugiej tabeli. Złączenie zewnętrzne w pierwszej kolejności tworzy produkt kartezjański a następnie filtruje wiersze i usuwa je z tabeli wirtualnej. Następnie wszystkie wiersze z jednej tabeli są dodawane ponownie do tabeli wirtualnej. Dla przypadków wierszy, które nie znalazły dopasowania wyświetlany jest NULL.

3. Iloczyn kartezjański - (CROSS JOIN).

Łączy każdy wiersz z jednej tabeli z każdym wierszem z drugiej tabeli. Dodaje wszystkie kombinacje do tabeli wirtualnej.
Tutorial statistics