我创建了下面的演示,使其更容易理解和帮助.我希望你能清楚地帮助我.https://www.db-fiddle.com/f/2LNHN7QdSMDgKLgupEFxoq/9
从SQL查询可以理解,我想把mp3文件打印到屏幕上.但是如果运行查询,您可以看到查询输出错误的结果.
post_文件id和upload_id实际上是相同的id.请查看post_id并上传_id以找出问题所在.
所以post_id 1
中的post_file 2,9
实际上是upload_id 2
,i_user_uploads
表中的upload_id 9
.
根据这种情况,如何使用post_id
、post_file
和upload_id
在屏幕上只打印upload_file_ext = 'mp3'
个数据.
我写的问题如下.您可以判断下面的100以使用表运行查询.
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
提前谢谢你.