MySQL posiada głównie dwa rodzaje złączeń nazwanych LEFT JOIN oraz RIGHT JOIN. Główną różnicą pomiędzy tymi złączeniami jest uwzględnienie niedopasowanych wierszy. LEFT JOIN zawiera wszystkie rekordy z lewej strony oraz dopasowane wiersze z prawej tabeli, podczas gdy RIGHT JOIN zwraca wszystkie wiersze z prawej strony oraz niedopasowane wiersze z lewej tabeli. W tym rozdziale poznamy popularne różnice pomiędzy LEFT i RIGHT join. Zanim przejdziemy do porównania, najpierw zrozumiemy klauzule JOIN, LEFT JOIN i RIGHT JOIN w MySQL.
Co to jest klauzula JOIN?
Złączenie jest używane do zapytania o dane z wielu tabel i zwraca połączony wynik z dwóch lub więcej tabel poprzez warunek. Warunek w klauzuli join wskazuje, jak kolumny są dopasowywane pomiędzy określonymi tabelami.
Co to jest klauzula LEFT JOIN Clause?
Klauzula Left Join łączy dwie lub więcej tabel i zwraca wszystkie wiersze z lewej tabeli i dopasowane rekordy z prawej tabeli lub zwraca null, jeśli nie znajdzie żadnego pasującego rekordu. Jest to również znane jako Left Outer Join. Tak więc, Outer jest opcjonalnym słowem kluczowym do użycia z Left Join.
Możemy to zrozumieć z następującą wizualną reprezentacją:
Aby przeczytać więcej informacji o złączeniu LEFT, kliknij tutaj.
Co to jest klauzula RIGHT JOIN?
Klauzula Right Join łączy dwie lub więcej tabel i zwraca wszystkie wiersze z prawej tabeli oraz tylko te wyniki z drugiej tabeli, które spełniły określony warunek złączenia. Jeśli znajdzie niedopasowane rekordy z lewej strony tabeli, zwraca wartość Null. Jest to również znane jako Right Outer Join. Tak więc, Outer jest opcjonalną klauzulą do użycia z Right Join.
Możemy to zrozumieć z następującą wizualną reprezentacją.
Aby przeczytać więcej informacji o RIGHT JOIN, kliknij tutaj.
Składnia klauzuli LEFT JOIN
Następująca jest ogólna składnia klauzuli LEFT JOIN:
Następująca jest ogólna składnia klauzuli LEFT OUTER JOIN:
Syntaktyka klauzuli RIGHT JOIN
Następująca jest ogólna składnia klauzuli RIGHT JOIN:
Następująca jest ogólna składnia klauzuli RIGHT OUTER JOIN:
LEFT JOIN vs. RIGHT JOIN
Poniższa tabela porównawcza wyjaśnia ich główne różnice w szybki sposób:
LEFT JOIN | RIGHT JOIN |
---|---|
Łączy dwie lub więcej tabel, zwraca wszystkie rekordy z lewej tabeli i pasujące wiersze z prawej tabeli. | Jest używany 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 nie ma pasującego wiersza w prawej tabeli. | Zestaw wyników będzie zawierał wartość null, jeśli nie ma pasującego wiersza w lewej tabeli. |
Jest to również znane jako LEFT OUTER JOIN. | Jest to również nazywane jako RIGHT OUTER JOIN. |
Przykład
Zrozummy różnice pomiędzy obydwoma złączeniami poprzez przykłady. Załóżmy, że mamy tabele o nazwach „customer” i „orders”, które zawierają następujące dane:
Tabela: customer
Tabela: orders
LEFT JOIN Przykład
Następująca instrukcja SQL zwraca pasujące rekordy z obu tabel przy użyciu zapytania LEFT JOIN:
Po pomyślnym wykonaniu zapytania otrzymamy dane wyjściowe w następujący sposób:
RIGHT JOIN Przykład
Następująca instrukcja SQL zwraca pasujące rekordy z obu tabel przy użyciu zapytania RIGHT JOIN:
Po pomyślnym wykonaniu zapytania otrzymamy dane wyjściowe jak poniżej:
.