所以我又回来了,遇到了更多的 MS Access 问题。我有一个带有子查询的 INSERT INTO 查询,用于检查数据是否已经存在。
SELECT name, course
FROM foo
WHERE (name, course) NOT IN (SELECT name, course FROM bar);
解释一下我想要完成的事情,因为上述方法不起作用。
我正在尝试选择表格栏中不存在的复合键。例如,可以将以下内容存储在表格栏中:
"John Doe" , "Calc 101"
"John Doe" , "English"
"Jane Doe" , "Calc 101"
以下内容可能在表 foo 中:
"John Doe", "Calc 101"
"John Doe", "Science"
查询应返回以下内容:
"John Doe", "Science"
我看过的所有地方都说上面的方法会起作用,我相信它在理论上是有效的。我遇到的问题是 MS Access... 当我尝试运行此查询时,它会弹出说明子查询将返回多个字段。事实上,它应该是我想要它做的就是返回 2 个字段,我可以比较其他 2 个字段。以上 2 个字段是我的“bar”数据库中的复合键。
有关更多背景信息,我正在使用 MS Excel 2007 和 MS Access 2007。Excel 用于输入数据并通过 VB 脚本运行查询。我正在尝试创建一个子查询来检查最终数据库中已经存在的字段,因为我遇到了 MS Access 打开错误并吐出一条关于附加主键的错误消息并在不执行查询的情况下关闭。<-- 由于复合键,这是可以预料的。