簡體   English   中英

我在查詢中沒有得到正確的結果

[英]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 2upload_id 9

根據這種情況,我怎樣才能使用post_idpost_fileupload_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM