2017-10-18 77 views
0

我在Microsoft Access中有一个表,充当静态的国家/地区列表(名为country table),country_id字段用作主键标识符。我试图在静态列表中使用country_id,并将它们与另一个表(名为引用表)进行比较,后者包含国家引用(country_ref1和country_ref2)。请注意,引用表在country_ref1和country_ref2中有重复条目,并且还包含空值/空值。所有字段的类型都是“短/文本”,并且在填充时由两个字母组成。比较SQL中的单个字段与两个字段

如果国家/地区表中的country_id与参考表中的country_ref1和country_ref2不匹配,我希望country_id填充到我的查询中。

这是我到目前为止,但它没有工作(可能是由于“不在”声明不占空间)。我也尝试使用LEFT JOIN &不存在没有解决方案。

SELECT country_id FROM country WHERE country_id NOT IN (SELECT DISTINCT Country_ref1 FROM References) AND country_id NOT IN (SELECT DISTINCT Country_ref2 FROM References) 

任何帮助,将不胜感激。谢谢。

回答

3

使用NOT EXISTS

SELECT c.country_id 
FROM country as c 
WHERE NOT EXISTS (SELECT 1 
        FROM References r 
        WHERE c.country_id IN (Country_ref1, Country_ref2) 
       ); 
+1

看起来像它的工作原理,但我不得不调整它,因为我在寻找失踪COUNTRY_ID的从静态表。我反而选择country_ref1和country_ref2而不是country_id,因为它会丢失。谢谢! – SScoder93