logo

MySQL LEWY DOŁĄCZ

Lewe łączenie w MySQL służy do wysyłania zapytań o rekordy z wielu tabel. Klauzula ta jest podobna do klauzuli Inner Join, której można używać z instrukcją SELECT bezpośrednio po słowie kluczowym FROM. Kiedy użyjemy klauzuli Left Join, zwróci ona wszystkie rekordy z pierwszej tabeli (po lewej stronie), nawet jeśli nie znaleziono pasujących rekordów z drugiej tabeli (po prawej stronie). Jeśli nie znajdzie żadnego rekordu dopasowań w tabeli po prawej stronie, zwraca wartość null.

Innymi słowy, klauzula Left Join zwraca wszystkie wiersze z lewej tabeli i dopasowane rekordy z prawej tabeli lub zwraca wartość Null, jeśli nie znaleziono pasującego rekordu. To połączenie można również nazwać a Lewe połączenie zewnętrzne klauzula. Zatem Outer jest opcjonalnym słowem kluczowym używanym z Left Join.

Możemy to zrozumieć za pomocą następującej reprezentacji wizualnej, w której Left Joins zwraca wszystkie rekordy z tabeli po lewej stronie i tylko pasujące rekordy z tabeli po prawej stronie:

MySQL LEWY DOŁĄCZ

Składnia MySQL LEFT JOIN

Następująca składnia wyjaśnia klauzulę Left Join służącą do łączenia dwóch lub większej liczby tabel:

 SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition; 

W powyższej składni Tabela 1 jest tabelą po lewej stronie, oraz Tabela 2 to tabela po prawej stronie. Ta klauzula zwraca wszystkie rekordy z tabeli 1 i dopasowane rekordy z tabeli 2 na podstawie określonych warunek dołączenia .

Przykład LEWEGO DOŁĄCZENIA MySQL

Weźmy kilka przykładów, aby zrozumieć działanie klauzul Left Join lub Left Outer Join:

Klauzula LEFT JOIN służąca do łączenia dwóch tabel

Tutaj utworzymy dwie tabele ' klienci' I ' Zamówienia' który zawiera następujące dane:

Tabela: klienci

MySQL LEWY DOŁĄCZ

Tabela: zamówienia

MySQL LEWY DOŁĄCZ

Aby wybrać rekordy z obu tabel, wykonaj następujące zapytanie:

 SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id; 

Po pomyślnym wykonaniu zapytania wyświetli się następujący wynik:

MySQL LEWY DOŁĄCZ

MySQL LEFT JOIN z klauzulą ​​USING

Tabela Klienci i Zamówienia mają tę samą nazwę kolumny, czyli identyfikator_klienta. W takim przypadku można również użyć lewego łączenia MySQL z klauzulą ​​USING, aby uzyskać dostęp do rekordów. Poniższa instrukcja zwraca identyfikator klienta, nazwę klienta, zawód, cenę i datę przy użyciu klauzuli Left Join ze słowem kluczowym USING.

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id); 

Powyższa instrukcja da następujące dane wyjściowe:

MySQL LEWY DOŁĄCZ

MySQL LEFT JOIN z klauzulą ​​Group By

Lewego łączenia można także używać z klauzulą ​​GROUP BY. Poniższa instrukcja zwraca identyfikator klienta, nazwę klienta, kwalifikacje, cenę i datę przy użyciu klauzuli Left Join z klauzulą ​​GROUP BY.

 SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price; 

Powyższa instrukcja da następujące dane wyjściowe:

MySQL LEWY DOŁĄCZ

LEFT JOIN z klauzulą ​​WHERE

Klauzula WHERE służy do zwracania filtr wynik z tabeli. Poniższy przykład ilustruje to za pomocą klauzuli Left Join:

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500; 

To stwierdzenie daje następujący wynik:

MySQL LEWY DOŁĄCZ

MySQL LEWY DOŁĄCZ do wielu tabel

Stworzyliśmy już dwie tabele o nazwie „ klienci' I ' Zamówienia' . Stwórzmy jeszcze jedną tabelę i nadajmy jej nazwę „ kontakty”, który zawiera następujące dane:

MySQL LEWY DOŁĄCZ

Wykonaj następującą instrukcję, aby połączyć trzy tabele klientów, zamówień i kontaktów:

 SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income; 

Po pomyślnym wykonaniu powyższego zapytania wyświetli się następujący wynik:

MySQL LEWY DOŁĄCZ

Użycie klauzuli LEFT JOIN w celu uzyskania niedopasowanych rekordów

Klauzula LEFT JOIN przydaje się także w przypadku, gdy chcemy uzyskać w tabeli rekordy, które nie zawierają pasujących wierszy danych z innej tabeli.

Możemy to zrozumieć na poniższym przykładzie, w którym zastosowano klauzulę LEFT JOIN w celu znalezienia klienta, który nie ma numeru telefonu komórkowego:

 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

Powyższa instrukcja zwraca następujące dane wyjściowe:

inaczej Java
MySQL LEWY DOŁĄCZ

Różnica między klauzulą ​​WHERE i ON w MySQL LEFT JOIN

W LEFT Join warunek WHERE i ON daje inny wynik. Aby zrozumieć różnice między nimi, możemy zobaczyć następujące zapytania:

GDZIE Klauzula

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500; 

Da to następujące dane wyjściowe, które zwracają:

MySQL LEWY DOŁĄCZ

Klauzula ON

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

Da to następujące dane wyjściowe:

MySQL LEWY DOŁĄCZ

UWAGA: Warunki WHERE i ON w klauzuli Inner Join zawsze zwracają równoważne wyniki.