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 
→ Ссылка