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