0
我有这样的查询该我应该重构同桌:Oracle查询:用不同的别名,但相同的选择两次where子句过滤
SELECT *
FROM a a1
,b common_alias
,b common_alias1
WHERE a1.id = common_alias.id(+)
AND a1.id = common_alias1.id(+)
AND common_alias.name = 'XYZ'
AND common_alias1.name = 'XYZ'
UNION
SELECT *
FROM a a1
,b common_alias
,b common_alias1
WHERE a1.id = common_alias.id(+)
AND a1.id = common_alias1.id(+)
AND common_alias.name = 'XYZ'
AND common_alias1.name = 'PQR'
在我看来,我可以删除第一个查询完全。是否有任何情况下删除第一个查询将有所作为?
感谢你的解释超出去。非常感谢它,先生。 – Victor 2012-07-27 15:44:23
我想我也可以做:select * from a,(select * from b where b.name ='XYZ')alias1,(select * from b where b.name ='PQR')alias2 where a.id = alias1 .id(+)和a.id = alias2.id(+) – Victor 2012-07-27 16:15:23