我讀過SELECT ... WHERE SELECT ...
很慢,我應該使用連接。如何用連接來替換`SELECT ... WHERE SELECT ...`?
但我不知道該如何將這段代碼
SELECT Id
FROM Table1
Where
(
Data1 IS NULL
OR
(
Data2=1
AND
(SELECT 1 FROM Table2 WHERE Table2.Id=Table1.Id) IS NULL
)
)
AND
(SELECT 1 FROM Table3 WHERE Table3.Id=Table1.Id) IS NULL
與連接。
中的表具有下面的結構:
表1:
- 編號:INTEGER PRIMARY KEY
- 數據1:XML
- 數據2:INTEGER
表2:
- 編號:INTEGER
表3:
- 編號:INTEGER PRIMARY KEY
PDO不會幫你。 –
首先看一下EXPLAIN,看看是否存在優化器無法解決的問題 - 然後您可以擔心調優 - 而不是試圖遵循全局規則。 – Randy
@Randy我從來沒有理解如何使用EXPLAIN。如果我在查詢前寫入EXPLAIN並在phpliteadmin上運行它,它只會顯示「* 0行受影響*」 – Oriol