Co to jest Left Outer Join w SQL?
Dzisiaj omówimy Left Outer Join. Left Outer Join lub Left Join jest tą samą rzeczą w SQL.W lewym zewnętrznym złączeniu, zwraca wszystkie dane z lewej tabeli złączenia. W tym samym momencie, dopasowuje również dane z tabeli po prawej stronie po lewym złączeniu.
Jeszcze jedna rzecz, o której musisz pamiętać. Jeśli istnieją wiersze dostępne w tabeli po lewej stronie, a nie ma pasujących danych w tabeli po prawej stronie, wówczas zestaw wyników będzie zawierał tylko wartości null dla nich.
Składnia złączenia lewostronnego
1
2 3 4 5 6 7 8 |
SELECT lefttable1.column1,lefttable1.column2,lefttable2.column1,….
FROM lefttable1 LEFT JOIN lefttable2 ON lefttable1.matching_column = lefttable2.matching_column; lefttable1: FIRST TABLE. lefttable2: SECOND TABLE matching_column: KOLUMNA wspólna dla obu tabel. |
Powyższa składnia jest naprawdę łatwa do zrozumienia. Pozwól, że wytłumaczę Ci to na prawdziwym przykładzie.Teraz stworzę dwie tabele jedną dla „BOOKCUSTOMERS” i drugą dla „ORDERS”.How to Use Left Outer Join? Pokażemy Ci praktyczny przykład lewego zewnętrznego złączenia podążając za mną. Nie będę mówił o tym jak stworzyć bazę danych lub tabelę. Zakładam, że potrafisz stworzyć dwie tabele tak jak pokazujemy poniżej:
Tabela A: BOOKCUSTOMERS
1
2 3 4 5 6 7 8 9 |
+-.—+———-+—–+———–+———-+
| ID | NAME | AGE | ADDRESS | SALARY | +—-+———-+—–+———–+———-+ | 1 | SAMUAL | 32 | Austin | 8000.00 | 2 | Johnson | 25 | Ohio | 9500.00 | 3 | Mathew | 23 | NEW York | 7000.00 | 4 | Eva | 25 | Texas | 6500.00 | 5 | April | 27 | San Marcos | 8500.00 | +—-+———-+—–+———–+———-+ |
TABELA B: ZAMÓWIENIA
1
2 3 4 5 6 7 8 |
+—–+-.——————–+—————–+——–+
| OID | DATE | BOOKCUSTOMER_ID | AMOUNT | +—–+———————+—————–+——–+ | 102 | 2019-12-08 00:00:00 | 3 | 4000 | | 100 | 2019-09-08 00:00:00 | 3 | 3500 | | 101 | 2019-08-20 00:00:00 | 2 | 6560 | | 103 | 2018-05-20 00:00:00 | 4 | 2060 | +—–+———————+—————–+——–+ |
Teraz więc dołączymy do tych dwóch tabel za pomocą lewego złączenia zewnętrznego, aby uzyskać dostęp do danych z tabeli.
Zapytanie SQL dla złączenia zewnętrznego lewego:
1
2 3 4 |
SQL> SELECT ID, NAME, AMOUNT
FROM BOOKCUSTOMERS LEFT JOIN ORDERS ON BOOKCUSTOMERS.ID = ORDERS.BOOKCUSTOMER_ID; |
W linii 1 wybieramy z tabeli „BOOKCUSTOMERS” kolumny, które chcemy pokazać w naszym wyniku końcowym.Teraz w linii 3, używamy słowa kluczowego „Left Join” aby użyć Left Join w naszym zapytaniu.
W ostatniej linii, dopasowujemy kolumny z tabeli 1 do kolumn z tabeli 2. W naszym przypadku, dopasowujemy „BOOKCUSTOMERS.ID” do „ORDERS.BOOKCUSTOMER_ID”.
Wynik
Teraz możesz zobaczyć końcowy wynik poniżej:
1
2 3 4 5 6 7 8 9 10 11 |
+-.—+———-+——–+
| ID | NAME | AMOUNT | +—-+———-+——–+ | 1 | SAMUAL | NULL | | 2 | Johnson | 6560 | | 3 | Mathew | 4000 | | 3 | Mathew | 3500 | | 2 | John | 6560 | | 4 | Eva | 2060 | | 5 | April | NULL | +-.—+———-+——–+ |