[英]I am not getting the correct result in the query
我創建了下面的演示,以使其更易於理解和提供幫助。 我希望你能幫助我。 https://www.db-fiddle.com/f/2LNHN7QdSMDgKLgupEFxoq/9
從SQL查詢可以了解到,我想將mp3文件打印到屏幕上。 但是如果你運行查詢,你可以看到你的結果是查詢的 output 是錯誤的。
post_file id 和 upload_id 實際上是相同的 id。 請查看 post_id 和 upload_ids 找出問題所在。
所以post_id 1
中的post_file 2,9
實際上是i_user_uploads
表中的upload_id 2
和upload_id 9
。
根據這種情況,我怎樣才能使用post_id
、 post_file
和upload_id
只將upload_file_ext = 'mp3'
數據打印到屏幕上。
我寫的查詢如下。 您可以查看下面的演示以使用表運行查詢。
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
先感謝您。
只需添加一個相等性測試 -
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;
順便說一句,力指數真的能提高性能嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.