SQL

时间:2017-10-18 16:18:50

标签: sql ms-access access-vba

我在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)

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

1 个答案:

答案 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)
                 );