如果我有一个名为“ FILES”的表1和一个名为“ Networks”的表2,并且FILES.Network_ID中的值必须来自Networks.Network_ID中定义的列表
如果我想运行查询以查明表1的network_id下是否有未在表2中定义的值,我尝试了以下显然无效的方法...此外,我正在使用MS ACCESS的SQL视图
SELECT *
FROM (FILES f LEFT JOIN Networks
ON f.Network_ID <> Networks.Network_ID)
答案 0 :(得分:3)
此查询无法正常工作,因为如果ID不匹配,您将尝试加入,因此理想情况下,在进行连接时,行将匹配
例如,如果表文件包含具有网络ID 1,2,3的行,而表网络包含网络ID 1,2,则在加入后,您将获得具有网络ID [1, 2],[2,1],[3,1],[3,2]。
实例,如果您使用子查询,然后使用 IN 子句对其进行过滤
select * from files where network_id not in (select network_id from networks);
答案 1 :(得分:1)