【发布时间】:2023-04-07 16:07:01
【问题描述】:
所以我又回来了,遇到了更多的 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 的错误,并吐出一条关于附加主键的错误消息,并在不执行查询的情况下关闭。
【问题讨论】:
-
你说“我看过的所有地方都说上面的方法可以工作......”你能展示你的来源吗?
标签: sql subquery ms-access-2007