在为this question准备了答案之后,我发现我无法验证我的答案。IN谓词如何在SQL中工作?
在我的第一个编程工作中,我被告知IN()
谓词中的查询会针对父查询中包含的每一行执行,因此应避免使用IN
。
例如,假设查询:
SELECT count(*) FROM Table1 WHERE Table1Id NOT IN (
SELECT Table1Id FROM Table2 WHERE id_user = 1)
Table1 Rows | # of "IN" executions ---------------------------------- 10 | 10 100 | 100 1000 | 1000 10000 | 10000
这是正确的吗? IN
谓词如何实际工作?
非常好的问题。没有看到许多问题要求对SQL中某些事情的实际工作进行细分。人们经常更关心获得他们想要的结果。 – TheTXI 2009-04-17 16:35:08