Oracle数据库表关联的一条准则
如果一个主表要关联一个子表信息进行联查时
比如A是主表 A1是子表
selct * from A left join A1 on A.id = A1.nmainid
where A1.某某字段 进行些限制
and A1.其他标识= '0'
and A.其他标识= '0'
这样是不对的,因为执行 selct * from A left join A1 on A.id = A1.nmainid时
如果子表有多条数据的话会导致数据重复,然后再进行条件判断的话会耗不必要时间
正确的应该是
select * from A c where
exsits( select 1 from A1 b where c.id = b.nmainid and where A1.某某字段 进行些限制)
and b.其他标识 = '0')
and c.vstop = '0'
如果一个主表要关联一个子表信息进行联查时
比如A是主表 A1是子表
selct * from A left join A1 on A.id = A1.nmainid
where A1.某某字段 进行些限制
and A1.其他标识= '0'
and A.其他标识= '0'
这样是不对的,因为执行 selct * from A left join A1 on A.id = A1.nmainid时
如果子表有多条数据的话会导致数据重复,然后再进行条件判断的话会耗不必要时间
正确的应该是
select * from A c where
exsits( select 1 from A1 b where c.id = b.nmainid and where A1.某某字段 进行些限制)
and b.其他标识 = '0')
and c.vstop = '0'