這是
和演示頁面。你會更好理解。
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'
AND FIND_IN_SET(A.upload_id, P.post_file)
ORDER BY P.post_id
DESC LIMIT 5
uj5u.com熱心網友回復:
您需要做的是GROUP BY post_id,如果您希望每個帖子 ID 有一行。
但是,由于 Post #6 上有多個 MP3 上傳,因此您需要做出業務決定。你想要哪種MP3?或者你想以某種方式將它們全部放在一個串列中?
您做出決定,然后使用 GROUP_CONCAT 或 FIRST 之類的分組函式
因此,要列出所有 MP3,GROUP_CONCAT 很可能是您想要的:
SELECT P.*,U.*,GROUP_CONCAT(A.uploaded_file_path)
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'
AND FIND_IN_SET(A.upload_id, P.post_file)
GROUP BY P.post_id
ORDER BY P.post_id
DESC LIMIT 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/468611.html
