我創建了下面的演示,以使其更易于理解和幫助。我希望你能幫助我。https://www.db-fiddle.com/f/2LNHN7QdSMDgKLgupEFxoq/9
從 SQL 查詢可以理解,我想將 mp3 檔案列印到螢屏上。但是,如果您運行查詢,您可以從您那里看到查詢輸出錯誤的結果。
post_file id 和 upload_id 實際上是相同的 id。請查看 post_id 和 upload_ids 以找出問題所在。
所以post_file 2,9inpost_id 1實際上是在表中upload_id 2。upload_id 9i_user_uploads
根據這種情況,如何使用,和僅upload_file_ext = 'mp3'將資料列印到螢屏上。post_idpost_fileupload_id
我寫的查詢如下。您可以查看下面的DEMO以使用表運行查詢。
SELECT P.*,
U.*,
A.*
FROM i_friends F FORCE INDEX(ixFriend)
INNER JOIN i_posts P FORCE INDEX (ixForcePostOwner) ON P.post_owner_id = F.fr_two
INNER JOIN i_users U FORCE INDEX (ixForceUser) ON P.post_owner_id = U.iuid AND U.uStatus IN('1','3') AND F.fr_status IN('me', 'flwr', 'subscriber')
INNER JOIN i_user_uploads A FORCE INDEX (iuPostOwner) ON P.post_owner_id = A.iuid_fk
AND P.post_file <> '' AND A.uploaded_file_ext = 'mp3'
WHERE P.post_owner_id='1'
ORDER BY P.post_id
先感謝您。
uj5u.com熱心網友回復:
只需添加一個相等測驗 -
SELECT P.*,U.*,A.*
FROM i_friends F FORCE INDEX(ixFriend)
INNER JOIN i_posts P FORCE INDEX (ixForcePostOwner)
ON P.post_owner_id = F.fr_two
INNER JOIN i_users U FORCE INDEX (ixForceUser)
ON P.post_owner_id = U.iuid AND U.uStatus IN('1','3') AND F.fr_status IN('me', 'flwr', 'subscriber')
INNER JOIN i_user_uploads A FORCE INDEX (iuPostOwner)
ON P.post_owner_id = A.iuid_fk
AND P.post_file <> ''
AND A.uploaded_file_ext = 'mp3'
and cast(p.post_file as int) = upload_id
WHERE P.post_owner_id='1'
ORDER BY P.post_id;
順便說一句,強制索引真的可以提高性能嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/468647.html
上一篇:Python遞回函式不回傳串列
