在爲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