我在查询中没有得到正确的结果
I am not getting the correct result in the query
我创建了下面的演示,以使其更易于理解和帮助。我希望你能帮助我。 https://www.db-fiddle.com/f/2LNHN7QdSMDgKLgupEFxoq/9
从SQL查询可以看出,我想将mp3文件打印到屏幕上。但是如果你运行查询,你可以看到查询的结果是错误的。
post_fileid和upload_id其实是同一个id。请查看 post_id 和 upload_id 以找出问题所在。
所以 post_id 1
中的 post_file 2,9
实际上是 upload_id 2
和 i_user_uploads
中的 upload_id 9
table.
根据这个条件,我如何使用post_id
、post_file
和upload_id
.
只将upload_file_ext = 'mp3'
数据打印到屏幕上
我写的查询如下。您可以检查下面的 DEMO 以 运行 使用 table 的查询。
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;
顺便说一句,强制索引真的能提高性能吗?
我创建了下面的演示,以使其更易于理解和帮助。我希望你能帮助我。 https://www.db-fiddle.com/f/2LNHN7QdSMDgKLgupEFxoq/9
从SQL查询可以看出,我想将mp3文件打印到屏幕上。但是如果你运行查询,你可以看到查询的结果是错误的。
post_fileid和upload_id其实是同一个id。请查看 post_id 和 upload_id 以找出问题所在。
所以 post_id 1
中的 post_file 2,9
实际上是 upload_id 2
和 i_user_uploads
中的 upload_id 9
table.
根据这个条件,我如何使用post_id
、post_file
和upload_id
.
upload_file_ext = 'mp3'
数据打印到屏幕上
我写的查询如下。您可以检查下面的 DEMO 以 运行 使用 table 的查询。
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;
顺便说一句,强制索引真的能提高性能吗?