MS Query排除州缩写

时间:2010-08-25 15:54:35

标签: ms-access aggregate-functions

我有一个问题,我想将美国国家排除在外。我正在尝试查找与美国以外的国家/地区相关的所有数据。我有所有美国国家的缩写,可以将表链接到查询并以某种方式排除它们或在查询中写一个语句来排除它们。但是,我不知道该怎么办。我以为我不能做''AK','IA','KY','WA'“但这不行。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

你能做这样的事吗:

SELECT * from table1 as t1
LEFT JOIN StatesTable as st
ON t1.State = st.State
WHERE st.id is null

您也可以使用NOT IN但i think that is a performance no-no。例如:

SELECT * FROM table1 where State NOT IN
   (SELECT State from StatesTable)

答案 1 :(得分:0)

我无法回想起MS-Access使用的SQL语法究竟是什么,但我认为你可以做类似

的事情
SELECT ... FROM ... WHERE StateAbbrev NOT IN ('AK', 'IA', 'KY', 'WA')

如果您在表格中有状态数据,则可以通过几种方式删除它。这是一个:

SELECT ... FROM ... WHERE StateAbbrev NOT IN (SELECT Abbrev FROM States)

第二种方法有很多变化。这是一个有效的,它可以提高性能的可读性。

答案 2 :(得分:0)

您的州表是否包含非美国州的价值,如加拿大省份?

如果是这样,请将另一个布尔字段添加到名为isInUS的状态表中,并将美国的50个状态标记为true。

然后检查相关状态值不在美国的行。

否则,如果您的州表包含50行,请使用左连接Aaron发布。