我有6张表如下,
表1, 表2, 表3, 表4, 表5, 表6
所有表都具有相同的主键。
我想从所有这些基表中创建一个视图。
select查询的where条件应该限定前五个表的主键。
要求就是这个,
1.视图应该从前五个表中获取数据加上第六个表中的数据。 2.如果第6个表中没有数据,则视图仍应显示5个表中的数据。
我可以限定所有表的主键,但如果我这样做,那么视图就不会显示任何数据 当第6张表中没有数据而且我不想要那样的时候。
我现在该怎么办?
答案 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 (+)