我有兩個表: P
和PC
(主/從由列ID接合)SQL子查詢替代相交
Table P:
Id integer
Name varchar(12)
Table PC:
Id integer
Code varchar(12)
Val number
我想獲得與P滿足以下的聯立條件的所有名稱:
有一臺PC與
PC.Code='A'
和Val>100
有另一臺電腦與
PC.Code='B'
和Val>80
總之,我只對那些P.Name其中的細節符合這兩個條件的興趣。有沒有方法可以選擇而不訴諸INTERSECT?
相交查詢:
Select P.Name
from P, PC
where P.Id=PC.Id
and PC.Code='A' and Val>100
INTERSECT
Select P.Name
from P, PC
where P.Id=PC.Id
and PC.Code='B' and Val>80
(興趣是檢查性能,並且還允許查詢在Access中運行)
[本文](http://stackoverflow.com/questions/2302873/sql-syntax-error-with-intersect)向您展示瞭如何一般性地用JOIN重寫INTERSECT查詢。具體來說,請參閱Vinko Vrsalovic的解決方案。 – mwigdahl