【发布时间】:2012-01-23 16:26:21
【问题描述】:
我有两张桌子:
P 和 PC(主/从列 Id 加入)
Table P:
Id integer
Name varchar(12)
Table PC:
Id integer
Code varchar(12)
Val number
我想从 P 中获取满足以下同时条件的所有名称:
拥有一台带有
PC.Code='A'和Val>100的PC拥有另一台带有
PC.Code='B'和Val>80的PC
总之,我只对细节符合这两个条件的 P.Name 感兴趣。有没有不使用 INTERSECT 的方法来选择?
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 中运行查询)
【问题讨论】:
-
This article 向您展示了如何使用 JOIN 重写 INTERSECT 查询。具体来说,请参阅 Vinko Vrsalovic 的解决方案。
标签: sql ms-access subquery intersect