sql连接查询求优化SELECT a.id FROM
news` a LEFT
JOINnews_data
b ON a.id=b.id LEFT JOIN hits
h ON a.id=h.id
AND a.catid=h.catid WHERE a.catid
=1 AND a.status
IN(1,2,3,4,98,99)
ORDER BY a.id DESC LIMIT 0,15`
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
建议不用join了, 因为你的where里的两个条件应该可以过滤大部分数据了,
再在这基础上判断是否在news_data, hits两个表中是否存在即可.
你可试试.
`select a.id
from news m
where m.catid = 1
and m.status in (1,2,3,4,98,99)
and exists ( select 1 from news_data t1 where t1.id = m.id)
and exists ( select 1 from hits t2 where t2.id = m.id and t2.catid = m.catid )
order by a.id desc
limit 0, 15;`