我试图在表中添加一个字段,指示该值是否存在于另一个表中。继承人我拥有的东西
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
我收到错误"行数"无法使用操作查询。 任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
你很亲密。 group by
是不必要的:
IIf(id In (SELECT id FROM table2), "yes", "no")
然而,我并非100%确定这会解决您的问题。这将在SELECT
查询中有效,但您的错误提示了不同类型的查询。
您可以尝试在table2(id)
上添加索引。但是,我可以将其写成:
iif(exists (select 1 from table2 where table2.id = ?.id), "yes", "no")
这应该利用table2(id)
上的索引。
答案 1 :(得分:1)
您可以使用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