我试图在表中添加一个字段,指示该值是否存在于另一个表中。继承人我所拥有的
table1: table2:
id id
1 2
2 4
3 6
最终结果:
table3:
id inTable2
1 no
2 yes
3 no
这是我到目前为止所拥有的。
SELECT id, IIf(id In (SELECT id FROM table2 GROUP BY id), "yes", "no") AS inTable2 INTO table3
我收到错误“行数源不能使用操作查询”。任何帮助将不胜感激,谢谢!
您可以使用LEFT JOIN
来优化此查询:
SELECT t1.id, IIF(t2.id IS NULL, "yes", "no") INTO table3
FROM table1 t1
LEFT JOIN table2 t2 ON t1.ID = t2.ID
你很亲密group by
是不必要的:
IIf(id In (SELECT id FROM table2), "yes", "no")
但是,我不是百分百肯定这会解决你的问题。这将在SELECT
查询中工作,但您的错误提示了不同类型的查询。
你可以尝试在table2(id)
上放一个索引。但是,我可能会这样写:
iif(exists (select 1 from table2 where table2.id = ?.id), "yes", "no")
这应该利用table2(id)
的索引。