我创建了下面的演示,使其更容易理解和帮助.我希望你能清楚地帮助我.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 2i_user_uploads表中的upload_id 9.

根据这种情况,如何使用post_idpost_fileupload_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

提前谢谢你.

推荐答案

只需添加一个平等测试-

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;

顺便问一下,力指数真的提高了性能吗?

Mysql相关问答推荐

MySQL查询获取图书的唯一读取页面数

了解MySQL_stmt_BIND_NAMED_Param()-MySQL C API

根据名称将值从一个字段复制到不同记录的同一字段

带有 JOIN 和 WHERE 子句的 INSERT 语句

Travis 构建失败并出现错误 LOAD DATA LOCAL INFILE 文件请求因访问限制而被拒绝

mysqli 无法以非 root 用户身份连接

Select 并统计所有条目并根据条目对它们进行分组

关联同一个表中的两列

try 在 .map 中使用 Favorite 选项卡进行react .我无法更改 mysql 表上的布尔类型

Mysql,显示谁已经和没有 Select 退出巴士服务

需要按总金额检索前 3 个供应商,每个类别 - 子类别

为什么这个查询需要超过 5 秒才能运行?

在 PHP 中获取 MySQL 列的总和

是否可以在内部连接期间重命名连接列?

默认为空字符串的列

Drupal 的默认密码加密方法是什么?

如何从两个不同的日期获得年份差异?

错误:无法构建 gem 本机扩展(rails 3.2.3 上的 mysql2)

比较 MySQL 中的日期忽略 DateTime 字段的时间部分

MySQL在哪里存储数据库文件?