我有 2 个大约 3000/4000 行的表。我需要使用 Left Join 建立关系,以通过搜索文本或日期时间来过滤结果。我还需要计算分页的总行数。当我运行查询时速度非常慢,请考虑通过控制台大约 40/45 秒和网页超过一分钟。关系是:对于表 A 的 1,表 B 中有 N。有快速查询的解决方案吗?示例查询是:
SELECT X,Y,Z, (SELECT COUNT(*)
FROM tableB WHERE tableB.idTa=tableA.id) AS CountTB
FROM tableA
LEFT JOIN tableB ON tableA.id = tableB.idA
WHERE tableA.X LIKE'%mytext%' OR tableB.Z LIKE'%mytext%'
GROUP BY tableA.id
ORDER BY tableA.Y LIMIT 0,10
谢谢你们
当然存在 ON 子句。只是从我的手机打错了。现在它是正确的并且非常慢:)
新更新:如果我将关系从 LEFT JOIN 更改为 RIGHT JOIN,它会变得非常快......为什么?