Для выполнения двух JOIN и вывода результата, даже если по второму JOIN нет совпадений, мы можем использовать оператор LEFT JOIN.
LEFT JOIN используется для объединения двух таблиц и возвращения всех записей из "левой" (первой) таблицы, даже если нет соответствующих записей в "правой" (второй) таблице. Если по второму JOIN нет совпадений, значения из второй таблицы будут NULL.
Приведу пример:
Пусть у нас есть две таблицы: Users и Orders.
Таблица Users содержит следующие данные:
+---------+--------------+
| user_id | user_name |
+---------+--------------+
| 1 | John |
| 2 | Emma |
| 3 | Mike |
+---------+--------------+
Таблица Orders содержит следующие данные:
+-----------+-----------+
| order_id | user_id |
+-----------+-----------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
+-----------+-----------+
Мы хотим выполнить JOIN этих таблиц и вывести все заказы для каждого пользователя, даже если у пользователя нет заказов.
Мы можем использовать следующий SQL-запрос:
SELECT Users.user_id, Users.user_name, Orders.order_id FROM Users LEFT JOIN Orders ON Users.user_id = Orders.user_id
Результатом будет:
+---------+--------------+-----------+
| user_id | user_name | order_id |
+---------+--------------+-----------+
| 1 | John | 1 |
| 1 | John | 3 |
| 2 | Emma | 2 |
| 3 | Mike | NULL |
+---------+--------------+-----------+
Как видно из результата, у пользователя Mike нет заказов, но мы все равно выводим его запись с NULL значением в столбце order_id.
Таким образом, использование оператора LEFT JOIN позволяет выполнить два JOIN и включить в результат записи, даже если для некоторых значений нет совпадений во второй таблице.