我有一個如下所示的SQL查詢。MySQL中IN和JOIN的執行順序
SELECT A.a, count(B.id)
FROM TableA A inner join TableA B on A.referId = B.id
WHERE A.id in (123,2424,232...)
GROUP BY A.id
在執行該查詢
- 行被使用where子句,然後再加入執行或執行
- 首先加入過濾,然後行過濾?
我在MySQL服務器上運行這個查詢。假設TableA包含百萬行。是否有任何替代和有效的方式來編寫此查詢?
有沒有參考? –
取決於。優化器應該選擇最快的方式,取決於數據量,鍵等。 – jarlh
@MichaelBerkowski,它是一個自加入 –