Команда LEFT JOIN
LEFT JOIN
возвращает все записи из левой (первой) таблицы и записи из правой (второй) таблицы, в которых были найдены совпадения.

Синтаксис LEFT JOIN
mysql> SELECT column1, column2, ... , columnN
-> FROM table1
-> LEFT JOIN table2 ON table1.column = table2.column;
Пример использования LEFT JOIN
Рассмотрим две таблицы orders (таблица заказов) и customers (данные о клиентах) из базы данных для интернет магазина Bookstore.
Выведем данные обеих таблиц. Можно заметить, что таблицы связаны с помощью идентификаторов. В колонке customer_id таблицы orders имеется идентификатор клиента из таблицы customers, по которому можно узнать все данные о покупателе, который сделал заказ. Однако клиенты с id 2 и 4 заказ не делали и не отображаются в таблице orders.
mysql> SELECT id, first_name, last_name FROM customers;
+----+----------------+----------------+
| id | first_name | last_name |
+----+----------------+----------------+
| 1 | Олег | Пальшин |
| 2 | Jane | Doherty |
| 3 | Евгений | Серов |
| 4 | София | Молина |
| 5 | John | Doe |
+----+----------------+----------------+
5 rows in set (0.00 sec)
mysql> SELECT id, customer_id, employer_id, status FROM orders;
+----+-------------+-------------+------------------+
| id | customer_id | employer_id | status |
+----+-------------+-------------+------------------+
| 3 | 1 | 3 | Готов к отправке |
| 6 | 3 | 2 | Готов к отправке |
| 7 | 5 | 2 | Завершен |
| 9 | 3 | 3 | Обрабатывается |
| 10 | 5 | 3 | Готов к отправке |
+----+-------------+-------------+------------------+
5 rows in set (0.00 sec)
Попробуем выяснить статус заказа для всех имеющихся клиентов в таблице customers, объединив ее с таблицей orders, с помощью команды LEFT JOIN
. Помня о том, что клиенты с id 2 и 4 заказ не делали для них выведется пустой результат (null).
mysql> SELECT orders.id, customers.first_name, customers.last_name, orders.employer_id, orders.status
-> FROM customers
-> LEFT JOIN orders ON orders.customer_id = customers.id;
+------+------------+-----------+-------------+------------------+
| id | first_name | last_name | employer_id | status |
+------+------------+-----------+-------------+------------------+
| NULL | София | Молина | NULL | NULL |
| NULL | Jane | Doherty | NULL | NULL |
| 3 | Олег | Пальшин | 3 | Готов к отправке |
| 6 | Евгений | Серов | 2 | Готов к отправке |
| 7 | John | Doe | 2 | Завершен |
| 9 | Евгений | Серов | 3 | Обрабатывается |
| 10 | John | Doe | 3 | Готов к отправке |
+------+------------+-----------+-------------+------------------+
7 rows in set (0.00 sec