Ваш вопрос на данный момент очень расплывчатый, но, скорее всего, это связано с тем, что вы используете INNER JOIN
s вместо LEFT JOIN
s.
Этот запрос:
SELECT *
FROM main
JOIN secondary
ON secondary.main_id = main.id
ничего не вернет, если secondary
пусто.
Этот запрос:
SELECT *
FROM main
LEFT JOIN
secondary
ON secondary.main_id = main.id
вернет как минимум одну запись для каждой записи в main
, заменив вторичные поля NULL
s, если в secondary
.
нет соответствующих записей
Обновление:
Используемый вами неявный синтаксис JOIN
(перечисление таблиц и предоставление условий JOIN
в предложении WHERE
) предполагает INNER JOIN
s.
Предполагая, что a
является "основной" таблицей, перепишите ваш запрос следующим образом:
SELECT a.*, b.*, c.*, d.*, e.*, f.*
FROM a
LEFT JOIN
b
ON b.aID = a.aID
LEFT JOIN
с
ON c.bID = b.bID
LEFT JOIN
d
ON d.bID = b.bID
LEFT JOIN
e
ON e.bID = b.bID
LEFT JOIN
f
ON f.bID = b.bID