Как сделать два JOIN и вывести результат, даже когда по второму JOIN нет совпадений?

Для выполнения двух 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 и включить в результат записи, даже если для некоторых значений нет совпадений во второй таблице.