即使一个表中没有数据,也要从多个表中选择数据

时间:2011-01-18 12:18:18

标签: oracle

我有6张表如下,

表1, 表2, 表3, 表4, 表5, 表6

所有表都具有相同的主键。

我想从所有这些基表中创建一个视图。

select查询的where条件应该限定前五个表的主键。

要求就是这个,

1.视图应该从前五个表中获取数据加上第六个表中的数据。 2.如果第6个表中没有数据,则视图仍应显示5个表中的数据。

我可以限定所有表的主键,但如果我这样做,那么视图就不会显示任何数据 当第6张表中没有数据而且我不想要那样的时候。

我现在该怎么办?

3 个答案:

答案 0 :(得分:6)

SELECT  *
FROM    table1 t1
JOIN    table2 t2
ON      t2.t1_id = t2.id
…
LEFT JOIN
        table6 t6
ON      t6.t5_id = t5.id

答案 1 :(得分:2)

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

答案 2 :(得分:1)

您指的是外部联接吗?

如下所示?

where 
    t1.id = t2.id and
    t2.id = T3.id and
    ...
    t5.id = t6.id (+)