SQL запрос для получения всех данных из таблицы
Имеется такой вот запрос
SELECT persons.id, first_name, second_name, last_name, date_employ, date_uneploy,
deps.name AS deps,
status.name AS status,
posts.name AS post
FROM persons JOIN deps ON deps.id = persons.id_dep JOIN status ON status.id = persons.id_status JOIN posts ON posts.id = persons.id_post
Он выдает мне только 1 валидный элемент из базы. Но в базе в таблице person данных больше. Как правильно составить запрос? Ничего не могу понять, спасибо!
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Предположу, что у каких-то персон нет ни одного поста, например. Я бы попробовал OUTER JOIN
, он не требует наличия подходящих записей в таблицах, с которыми делается соединение. Если подходящей записи не будет найдено, на месте соответствующего поля будет NULL
:
SELECT persons.id,
first_name,
second_name,
last_name,
date_employ,
date_uneploy,
deps.NAME AS deps,
status.NAME AS status,
posts.NAME AS post
FROM persons
OUTER JOIN deps
ON deps.id = persons.id_dep
OUTER JOIN status
ON status.id = persons.id_status
OUTER JOIN posts
ON posts.id = persons.id_post