ВЫБЕРИТЕ линии, даже если соединение не удается - PullRequest
0 голосов
/ 09 июля 2019

У меня следующая проблема с новичком, я думаю:

SELECT
    dl_dml_projects.*,
    dl_dml_catalogue.*,
    dl_dml_groups.*

FROM
    dl_dml_projects
        JOIN dl_dml_catalogue ON dl_dml_projects.dml_prj_catalogue_id = dl_dml_catalogue.dl_dml_catalogue_id
        JOIN dl_dml_groups ON dl_dml_catalogue.dml_catl_group = dl_dml_groups.dl_dml_groups_id

Проблема в том, что в строке нет dl_dml_projects.dml_prj_catalogue_id, тогда кажется, что эта строка не выбрана и не возвращена.

Можно ли принудительно вернуть эти строки с неработающими ссылками?Например, отсутствующие значения неудачного соединения могут быть NULL.

dl_dml_projects.dml_prj_catalogue_id должна быть необязательной ссылкой.

Большое спасибо.

1 Ответ

3 голосов
/ 09 июля 2019

Вы, кажется, хотите внешнее соединение или два.Я предполагаю, что LEFT JOIN:

SELECT p.*, c.*, g.*
FROM dl_dml_projects p LEFT JOIN
     dl_dml_catalogue c
     ON p.dml_prj_catalogue_id = c.dl_dml_catalogue_id LEFT JOIN
     dl_dml_groups g
     ON c.dml_catl_group = g.dl_dml_groups_id;

Это сохранит все строки в первой таблице.Если в других таблицах нет совпадений, соответствующие столбцы будут иметь вид NULL.

. Обратите внимание, что здесь также вводятся псевдонимы таблиц.Обычно это облегчает написание и чтение запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...