Łączy rekordy tabeli źródłowej w przypadku użycia w dowolnej klauzuli FROM.

Składnia

FROM tabela1 [ LEFT | RIGHT ] JOIN tabela2 ON tabela1.pole1 operator_porównania 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 mogą mieć inne nazwy.

operator_porównania

Dowolny relacyjny operator porównania: „=”, „<”, „>”, „<=”, „>=”, 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 uwzględnić pole sprzężone, wprowadź nazwę tego pola w instrukcji SELECT — w tym przypadku jest to nazwa 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.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.