MySQL ma głównie dwa rodzaje złączeń: LEFT JOIN i RIGHT JOIN. Główną różnicą między tymi połączeniami jest włączenie niedopasowanych wierszy . LEFT JOIN uwzględnia wszystkie rekordy z lewej strony i dopasowane wiersze z prawej tabeli, natomiast RIGHT JOIN zwraca wszystkie wiersze z prawej strony i niedopasowane wiersze z lewej tabeli. W tej sekcji poznamy popularne różnice pomiędzy łączeniem LEWYM i PRAWYM. Zanim przejdziemy do porównania, najpierw zrozumiemy klauzule JOIN, LEFT JOIN i RIGHT JOIN w MySQL'a .
Co to jest klauzula JOIN?
A dołączyć służy do wykonywania zapytań o dane z wielu tabel i zwraca łączny wynik z dwóch lub więcej tabel za pomocą warunku. Warunek w klauzuli Join wskazuje, w jaki sposób kolumny są dopasowywane w określonych tabelach.
Co to jest klauzula LEFT JOIN?
Klauzula Left Join łączy dwie lub więcej tabel i zwraca wszystkie wiersze z lewej tabeli oraz dopasowane rekordy z prawej tabeli lub zwraca wartość null, jeśli nie znajdzie żadnego pasującego rekordu. Znany jest również jako Lewe połączenie zewnętrzne . Zatem Outer jest opcjonalnym słowem kluczowym używanym z Left Join.
Możemy to zrozumieć za pomocą następującej reprezentacji wizualnej:
Aby przeczytać więcej informacji na temat złączenia LEWEGO, Kliknij tutaj .
Jaka jest PRAWIDŁOWA klauzula JOIN?
Klauzula Right Join łączy dwie lub więcej tabel i zwraca wszystkie wiersze z tabeli po prawej stronie oraz tylko te wyniki z drugiej tabeli, które spełniły określony warunek złączenia. Jeśli znajdzie niedopasowane rekordy w tabeli po lewej stronie, zwróci wartość Null. Znany jest również jako Prawe połączenie zewnętrzne . Zatem Outer jest opcjonalną klauzulą, której można używać z Right Join.
Możemy to zrozumieć w następujący sposób reprezentacja wizualna .
Aby przeczytać więcej informacji na temat RIGHT JOIN, kliknij tutaj.
Składnia klauzuli LEFT JOIN
Poniżej znajduje się ogólna składnia LEFT JOIN:
SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
Poniżej znajduje się ogólna składnia LEFT OUTER JOIN:
SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
Składnia klauzuli RIGHT JOIN
Poniżej znajduje się ogólna składnia RIGHT JOIN:
SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
Poniżej znajduje się ogólna składnia RIGHT OUTER JOIN:
SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
LEWE DOŁĄCZENIE kontra PRAWE DOŁĄCZENIE
Poniższa tabela porównawcza wyjaśnia w szybki sposób główne różnice między nimi:
LEWO DOŁĄCZ | PRAWO DOŁĄCZ |
---|---|
Łączy dwie lub więcej tabel, zwraca wszystkie rekordy z lewej tabeli i pasujące wiersze z prawej tabeli. | Służy do łączenia dwóch lub więcej tabel, zwraca wszystkie rekordy z prawej tabeli i pasujące wiersze z lewej tabeli. |
Zestaw wyników będzie zawierał wartość null, jeśli w tabeli po prawej stronie nie ma pasującego wiersza. | Zestaw wyników będzie zawierał wartość null, jeśli w tabeli po lewej stronie nie ma pasującego wiersza. |
Nazywa się to również LEWYM ŁĄCZENIEM ZEWNĘTRZNYM. | Nazywa się to również PRAWYM ŁĄCZENIEM ZEWNĘTRZNYM. |
Przykład
Przyjrzyjmy się różnicom pomiędzy obydwoma łączeniami na przykładach. Załóżmy, że mamy tabelę o nazwie „ klient ' I ' Zamówienia ', który zawiera następujące dane:
Tabela: klient
Tabela: zamówienia
LEWY DOŁĄCZ Przykład
Następująca instrukcja SQL zwraca pasujące rekordy z obu tabel za pomocą zapytania LEFT JOIN:
SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>
Po pomyślnym wykonaniu zapytania otrzymamy następujący wynik:
'2020-04-30';>