我可以以任何不同的方式使用此代碼來獲得更好的性能嗎?Mysql子查詢優化?
我試過這種方式;
SELECT K.id, M.m_id, K.Sil, K.Banli, K.Foto, K.KullaniciAdi, K.Ad, K.Soyad, K.Gender,
(select rate_id,Rate,Zaman from ratings where UyeID=K.id ORDER BY rate_id DESC LIMIT 1)
但我不能做我想做的事。
這是工作代碼。給人的結果,我想:
SELECT K.id, M.m_id, K.Sil, K.Banli, K.Foto, K.KullaniciAdi, K.Ad, K.Soyad, K.Gender,
( SELECT R.mr_id FROM mesajlarreply R
WHERE R.CID=M.m_id
ORDER BY R.mr_id DESC LIMIT 1
) as mr_id,
( SELECT R.Mesaj FROM mesajlarreply R
WHERE R.CID=M.m_id
ORDER BY R.mr_id DESC LIMIT 1
) as Mesaj,
( SELECT R.KayitZaman FROM mesajlarreply R
WHERE R.CID=M.m_id
ORDER BY R.mr_id DESC LIMIT 1
) as KayitZaman
FROM mesajlar M, kullanicilar K
WHERE
CASE
WHEN M.K1 = '1' THEN M.K2 = K.id
WHEN M.K2 = '1' THEN M.K1 = K.id
END
AND (M.K1 = '1' OR M.K2 = '1')
ORDER BY M.m_id DESC
LIMIT 20
你可以發佈兩個表的結構嗎?或者至少請附上關於主鍵主鍵的信息 - 哪些列是這兩個表中的主鍵? – krokodilko
您的編輯會使這看起來是一個新的/不同的查詢。如果是這樣,你應該能夠適應我的答案爲新的查詢;如果您遇到問題,請發佈一個_新問題。 –
@ Clockwork-Muse我發佈了一個新問題,但nobodys幫助我。我怎樣才能做到這一點? http://stackoverflow.com/questions/23901430/mysql-subquery-optimize?noredirect=1#comment36808675_23901430 –