0
我在執行子查詢時遇到問題,以便刪除我的應用程序中的某些特定行。這是我錯誤的SQL:用於刪除行的MySQL子查詢
delete from player_news_items
where id IN
(select id from player_news_items
where player_id NOT IN (select id from players));
什麼是寫這個查詢的正確方法?
不,我不同意,但爲什麼會在第二種形式是更優選寫查詢的方式?第一種形式更簡潔,*看起來像它應該更快。 – zebediah49 2014-10-28 16:30:46
作爲一個新人,我想問一下NOT IN和EXISTS之間是否存在性能差異?當然,@ zebediah49它看起來更快,但是它更快? – AdamMc331 2014-10-28 16:32:24
@ McAdam331。 。 。在一些數據庫中,「not exists」比「not in」更有效。更重要的是,如果'players.id'是'NULL',那麼第一個版本將永遠不會返回任何值。 'Not exists'實際上比'NOT IN'更直觀地處理NULL。 – 2014-10-28 17:38:13