select some_value FROM table WHERE (subquery) IN (values)
的MySQL查詢這似乎是緩慢的極端!
我有一個與訂單和第二個與他們的相應處理狀態的MySQL表。我現在要顯示所有訂單的最後狀態碼= 1。
表順序(ID =主鍵)
id | value
---+-------
1 + 10
2 + 12
3 + 14
表狀態(ID =主鍵)
id | orderid | code
---+---------+-------
1 + 1 + 1
2 + 2 + 1
3 + 2 + 2
4 + 1 + 3
5 + 3 + 1
我的查詢是:
select order.id FROM order WHERE
(select state.code FROM state WHERE state.orderid = order.id ORDER BY state.id DESC LIMIT 0,1) IN ('1')
大致需要15秒處理這一個單一的訂單。如何修改mysql語句以加快查詢處理時間?
在此我僅會得到一個訂單,因爲限制0,1作用於所有與所有州的訂單。 – user2898068
對不起,沒有足夠好的閱讀這個問題。嘗試我更新的查詢。 – RedFilter
謝謝。它工作得非常快!但是,當我在state.orderid上應用索引時,執行時間「傾向於爲零」。你能否評論這個索引的行爲,以及爲什麼這會極大地提高查詢速度? – user2898068