我在Microsoft Access中有一个表,它充当静态国家/地区列表(命名为国家/地区表),其中country_id字段作为主键标识符。我正在尝试在静态列表中使用country_id,并将它们与另一个包含国家/地区引用(country_ref1和country_ref2)的表(命名引用表)进行比较。请注意,引用表在country_ref1和country_ref2中具有重复条目,并且还包括空值/空值。所有字段都具有相同类型“短/文本”,填充时由两个字母组成。
如果国家/地区表中的country_id与引用表中的country_ref1和country_ref2不匹配,我希望在我的查询中填充country_id。
这是我到目前为止所提出的,但它不起作用(可能是由于“NOT IN”声明没有考虑空值)。我也尝试过使用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)
任何帮助将不胜感激。谢谢。
答案 0 :(得分: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)
);