Оператор LEFT JOIN об’єднує дві таблиці на основі спільного стовпця і вибирає не тільки записи зі співпадаючими значеннями в цих стовпцях, але і всі інші рядки з лівої таблиці. Наприклад:
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer; |
Ось як працює цей код:

Тут ми вибираємо стовпці customer_id та first_name (з таблиці Customers) та стовпець amount (з таблиці Orders). В результате отримуємо ті рядки, в яких є збіг між customer_id (таблиці Customers) та customer (таблиці Orders) разом зі всіма іншими рядками з (лівої) таблиці Customers.
Синтаксис оператора LEFT JOIN
Синтаксис оператора LEFT JOIN наступний:
|
1 2 3 4 |
SELECT стовпці FROM таблиця1 LEFT JOIN таблиця2 ON таблиця1.назва_стовпця = таблиця2.назва_стовпця; |
Оператор LEFT JOIN з оператором WHERE
Ось приклад використання оператора LEFT JOIN з оператором WHERE:
|
1 2 3 4 5 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer WHERE Orders.amount >= 500; |
Тут ми об’єднуємо дві таблиці та вибираємо рядки, у яких сума (amount) більше або дорівнює 500.

Оператор LEFT JOIN з псевдонімами
Ми можемо використовувати псевдоніми (оператор AS) з оператором LEFT JOIN, щоб зробити код коротшим та чистішим. Наприклад:
|
1 2 3 4 |
SELECT C.cat_name, P.prod_title FROM Categories AS C LEFT JOIN Products AS P ON C.cat_id = P.cat_id; |
Тут ми вибираємо спільні рядки між таблицями Categories і Products.

Порівняння LEFT JOIN з іншими JOIN-ами
LEFT JOIN проти LEFT OUTER JOIN
Ми можемо використовувати LEFT OUTER JOIN замість LEFT JOIN. По суті, ці два оператори однакові.
Наприклад, наступний фрагмент коду:
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer; |
рівнозначний
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT OUTER JOIN Orders ON Customers.customer_id = Orders.customer; |
LEFT JOIN проти INNER JOIN
Оператор LEFT JOIN вибирає не тільки спільні рядки між двома таблицями, але й всі інші рядки з лівої таблиці. Тоді як оператор INNER JOIN вибирає лише спільні рядки між двома таблицями.
LEFT JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат (повні дані):

INNER JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers INNER JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат:

LEFT JOIN проти RIGHT JOIN
Оператор LEFT JOIN вибирає не тільки спільні, але й всі інші рядки з лівої таблиці. Тоді як оператор RIGHT JOIN вибирає спільні рядки, а також всі інші з правої таблиці.
LEFT JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат (повні дані):

RIGHT JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers RIGHT JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат:

LEFT JOIN проти FULL OUTER JOIN
Оператор LEFT JOIN вибирає спільні рядки між двома таблицями, а також всі інші рядки з лівої таблиці. Тоді як оператор FULL OUTER JOIN вибирає всі рядки з обох таблиць.
LEFT JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат (повні дані):

FULL OUTER JOIN
|
1 2 3 4 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount FROM Customers FULL OUTER JOIN Orders ON Customers.customer_id = Orders.customer; |
Результат:


(12 оцінок, середня: 4,67 з 5)