gpt4 book ai didi

mysql - 如何简化我的sql查询

转载 作者:行者123 更新时间:2023-11-29 07:02:54 27 4
gpt4 key购买 nike

我有这个查询,但它需要大约 15 秒才能完成。我怎样才能简单地处理它以在更短的时间内获得相同的结果?我的问题是我需要所有这些数据。

SELECT * FROM (
SELECT c.client_id, c.client_name, c.client_bpm,
c.client_su_name, c.client_maxbpm, s.bpm,
s.timestamp, m.mesure_id, ms.currentT
FROM tbl_clients c, tbl_meting m, tbl_sensor_meting s,
tbl_magsens_meting ms
WHERE c.client_id = m.client_id
AND (m.mesure_id = s.id_mesure
OR m.mesure_id = ms.id_mesure)
AND m.live =1
ORDER BY s.timestamp DESC
) AS mesure
GROUP BY mesure.client_id

最佳答案

我认为问题可能出在 WHERE 子句中的 OR 条件?您似乎正在尝试加入一张或另一张 table ,但您做不到。所以我将其替换为 LEFT JOIN,因此如果不存在相关记录,则不会返回任何内容。

我还删除了您的 GROUP BY,因为我认为它不是必需的。

SELECT c.client_id, c.client_name, c.client_bpm,
c.client_su_name, c.client_maxbpm, s.bpm,
s.timestamp, m.mesure_id, ms.currentT
FROM tbl_clients c
JOIN tbl_meting m ON m.client_id = c.client_id
LEFT JOIN tbl_sensor_meting s ON s.id_mesure = m.mesure_id
LEFT JOIN tbl_magsens_meting ms ON ms.id_mesure = m.mesure_id
WHERE m.live = 1
ORDER BY s.timestamp DESC

关于mysql - 如何简化我的sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9086792/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com