MYSQL объединяет три таблицы, если поле не равно нулю

У меня есть три таблицы в моей базе данных, к которым я хочу присоединиться, если поле соединения в таблице 1 не равно нулю. Если оно пустое, я хочу получить только результаты таблицы 1.

Table1
----------------------
id | name | table2_id|
----------------------
1    John    1
2    Frank   1
3    Mary    2
4    Susan   null

Table2
----------------------
id | City | table3_id|
----------------------
1    Berlin   2
2    Paris    3
3    Rome     1
3    Oslo     1

Table3
-------------------------------
id | title       | description | 
-------------------------------
1    Great place    Some tekst
2    Fun town       Some other text
3    Don't go       More text

Я использую этот запрос:

SELECT a.name, b.city, c.title, c.description
FROM table1 AS a
LEFT JOIN table2 AS b ON b.id = a.table2_id
LEFT JOIN table3 AS c ON c.id = b.table3_id
WHERE a.id = 1

Это прекрасно работает, пока table1 имеет table2_id. В случае с Джоном он возвращает

John, Berlin, Great Place, Some text

Но в случае с Сьюзен table2_id равен нулю, поэтому он возвращает пустой результат. Но я хочу получить «Сьюзен» в результате.

0
задан Steven Trooster 17 January 2019 в 17:23
поделиться