Łączy rekordy tabeli źródłowej w przypadku użycia w dowolnej klauzuli FROM.
Składnia
FROM tabela1 [ LEFT | RIGHT ] JOIN tabela2
ON tabela1.pole1komputer tabela2.pole2
Operacje LEFT JOIN i RIGHT JOIN zawierają następujące segmenty:
| Segment | Opis |
|---|---|
| tabela1, tabela2 | Nazwy tabel, z których pochodzą łączone rekordy. |
| pole1, pole2 | Nazwy sprzęganych pól. Pola muszą mieć ten sam typ danych i zawierać ten sam rodzaj danych, ale nie muszą mieć takiej samej nazwy. |
| operator_porównania | Każdy operator porównania relacyjnego: "=", "", "<", "<>=", ">=" lub "<>". |
Spostrzeżenia
Użyj operacji LEFT JOIN, aby utworzyć lewe sprzężenie zewnętrzne. Lewe sprzężenia zewnętrzne obejmują wszystkie rekordy z pierwszej (lewej) z dwóch tabel, nawet jeśli nie ma pasujących wartości dla rekordów z drugiej (prawej) tabeli.
Użyj operacji RIGHT JOIN, aby utworzyć prawe sprzężenie zewnętrzne. Prawe sprzężenia zewnętrzne obejmują wszystkie rekordy z drugiej (prawej) z dwóch tabel, nawet jeśli nie ma pasujących wartości dla rekordów z pierwszej (lewej) tabeli.
Na przykład można użyć operacji LEFT JOINT na tabeli lewej Departments (Działy) i tabeli prawej Employees (Pracownicy), aby wybrać wszystkie działy, łącznie z tymi, do których nie są przypisani żadni pracownicy. Aby wybrać wszystkich pracowników, łącznie z tymi, którzy nie są przypisani do żadnego działu, użyj operacji RIGHT JOIN.
W poniższym przykładzie pokazano, jak utworzyć sprzężenie tabel Categories (Kategorie) i Products (Produkty) w polu CategoryID (Identyfikator kategorii). Zapytanie zwróci listę wszystkich kategorii, łącznie z tymi, które nie zawierają żadnych produktów:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
W tym przykładzie pole CategoryID (Identyfikator kategorii) jest polem sprzężonym, które jednak nie jest uwzględnione w wynikach zapytania, ponieważ nie jest zawarte w instrukcji SELECT. Aby dołączyć pole sprzężone, wprowadź nazwę pola w instrukcji SELECT — w tym przypadku Categories.CategoryID.
Aby utworzyć zapytanie, które obejmuje wyłącznie rekordy, w których dane w polach sprzężonych są takie same, użyj operacji INNER JOIN.
- Operacja LEFT JOIN lub RIGHT JOIN może być zagnieżdżona w operacji INNER JOIN, ale operacja INNER JOIN nie może być zagnieżdżona w operacji LEFT JOIN ani w operacji RIGHT JOIN. Aby dowiedzieć się, jak zagnieździć sprzężenia w innych sprzężeniach, zapoznaj się z dyskusją na temat zagnieżdżania w artykule dotyczącym operacji INNER JOIN.
- Możesz połączyć kilka klauzul ON. Zapoznaj się z dyskusją na temat łączenia klauzul w artykule dotyczącym operacji INNER JOIN, aby dowiedzieć się, jak to się robi.
W przypadku próby połączenia pól zawierających dane typu Nota lub Obiekt OLE wystąpi błąd.