Выберите данные из нескольких таблиц, даже если в одной таблице нет данных - PullRequest
2 голосов
/ 18 января 2011

У меня есть 6 таблиц следующим образом:

таблица-1, таблица-2, таблица-3, таблица-4, таблица-5, таблица-6

Все таблицы имеюттот же первичный ключ.

Я хочу создать представление из всех этих базовых таблиц.

Условие where запроса select должно соответствовать первичным ключам первых пяти таблиц.

Требование следующее:

1. Представление должно извлекать данные изпервые пять таблиц плюс данные в шестой таблице.2.Если в 6-й таблице нет данных, представление все равно должно отображать данные в 5 таблицах.

Я могу определить первичные ключи всех таблиц, но если я это сделал, то представление не будет отображатьсялюбые данные, когда в шестой таблице нет данных, и я этого не хочу.

что мне теперь делать?

Ответы [ 3 ]

6 голосов
/ 18 января 2011
SELECT  *
FROM    table1 t1
JOIN    table2 t2
ON      t2.t1_id = t2.id
…
LEFT JOIN
        table6 t6
ON      t6.t5_id = t5.id
2 голосов
/ 18 января 2011
Select t1.*, -- put here columns you need
       t2.*,
       t3.*,
       t4.*,
       t5.*,
       t6.*
  From table1 t1
       Join table2 t2 On t1.pfield = t2.pkfield
       Join table3 t3 On t1.pfield = t3.pkfield
       Join table4 t4 On t1.pfield = t4.pkfield
       Join table5 t5 On t1.pfield = t5.pkfield
  Left Join table6 t6 On t1.pfield = t6.pkfield
1 голос
/ 18 января 2011

Вы имеете в виду внешнее соединение?

Что-то вроде следующего?

where 
    t1.id = t2.id and
    t2.id = T3.id and
    ...
    t5.id = t6.id (+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...