Присоединиться через таблицу соединений с обнуляемым полем - PullRequest
1 голос
/ 10 апреля 2009

«Простой вопрос SQL» :) У меня есть две таблицы и третья, которая действует как «таблица полузадежных переходов», что означает, что иногда есть только один из двух внешних ключей. Есть ли способ присоединиться к ним?

Например, с учетом следующих данных:

Идентификаторы таблицы D: 1,2,3,4,5
Идентификаторы таблицы C: 1,2,3
Table Junction (D.id, C.id): (1,1) (2, NULL) (3, NULL) (4,2) (5,3)

есть ли способ получить следующее?
([Поля D идентификатора строки 1], [Поля C идентификатора строки 1])
([D поля строки id 2], [NULL C поля])
([D поля строки id 3], [NULL C поля])
([D поля строки id 4], [C поля строки id 2])
([D полей строки id 5], [C полей строки id 3])

Если это актуально, я использую PostgreSQL.
Спасибо за ваше время!

1 Ответ

3 голосов
/ 10 апреля 2009
SELECT  d.*, c.*
FROM    d
JOIN    junction j
ON      j.d_id = d.id
LEFT JOIN
        с
ON      c.id = j.c_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...