MS ACCESS避免不在

时间:2014-05-15 13:43:17

标签: sql ms-access-2010

我想获取FileID 6的Assets的不同值,它不链接到任何其他FileID。即FileID可以链接到同一个资产。

我使用了以下内容,但这是缓慢的方法。有没有其他方法可以做到这一点,如左外连接???感谢任何帮助,因为这让我感到疯狂。

Select distinct AssetName from Asset 
where FileID=6 and AssetName not in 
    (select AssetName from Asset where FileID <> 6)

2 个答案:

答案 0 :(得分:1)

SELECT AssetName from 
    (SELECT AssetName, MAX(FileID) AS FileID from Asset 
    WHERE COUNT(FileID) = 1 GROUP BY AssetName)
WHERE FileID=6

我认为这就是您想要的,首先您只选择附加了1个FileID的资产,然后查询FileID = 6的资产。

答案 1 :(得分:0)

也许你应该加入AssetName:

select distinct AssetName 
from Asset as a1
where FileID=6 
and   0 = (
  select count(*) 
  from Asset as a2 
  where FileID <> 6 and a1.AssetName = a2.AssetName
)

注意:我没有Access,因此尚未经过测试。两列的索引都有助于提高绩效。