Oracle:多表连接和临时表的使用

转自https://blog.csdn.net/xushaozhang/article/details/74687168

1.多张表格需要连接,这时候使用外/内连接即可

2.但是如果这些表格不是现成的,而是需要使用select语句到其他表格(非现成表格,需要用到其他表的联合)去找出满足要求的数据组成表格,这个时候就涉及到多个层次的表的连接,此时一般使用临时表来节省空间(因为查询可能只进行一次)

select a.*,b.cnt,c.cnt from T1 a

left join T2 b on b.id = a.id

left join T3 c on c.id = a.id

这里,a表作为主表,是有需要全部显示的属性的表格

4.若是b表和c表都不是现成的,需要使用select语句选出结果集作为表格,则使用临时表

with tmp1 as( ...),tmp2 as(...),tmp3 as(...)

select a.*,b.*,c.* from tmp1 a left join tmp2 b on b.id = a.id left join tmp3 c on c.id = a.id order by a.id

5.inner join和left join使用注意区分inner join必须是两张表格的比较属性完全相同才被选出来,不存在有空值出现的情况

你可能感兴趣的:(Oracle:多表连接和临时表的使用)