gpt4 book ai didi

MySQL - 将这两个查询与连接或子查询连接在一起?

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:36 25 4
gpt4 key购买 nike

此查询返回我需要的数据,给定一个特定的 traceid 值(在本例中为 50,这是存在于两个表 tblResults 中的键tblTraces:

SELECT count(changed)
FROM (
SELECT changed
FROM tblResults
WHERE traceid = 50
AND changed = 1
ORDER BY resultid DESC
LIMIT 0,20
) as R

我想对几乎每个 traceid 运行上述查询(因此,为每个 traceid 选择 20 行,而不仅仅是 traceid 50,所以 3 个 traceid 意味着 60 行).下面这个简单的选择获取所需的 traceid 值:

SELECT `traceid` FROM `tblTraces` WHERE `enabled` = 1

如何将两个查询“粘合”在一起?

所以我想象一个像下面这样的查询,除了它不会工作,因为子查询返回多行(我想要的):

SELECT count(changed)
FROM (
SELECT changed
FROM tblResults
WHERE traceid = (
SELECT `traceid` FROM `tblTraces` WHERE `enabled` = 1
)
AND changed = 1
ORDER BY resultid DESC
LIMIT 0,20
) as R

最佳答案

虽然我对这个答案不满意,但对于较小的表来说它可能是最简单的:

SELECT tblTraces.traceid, LEAST(20, SUM(tblResults.changed))
FROM tblTraces
LEFT JOIN tblResults
ON tblTraces.traceid = tblResults.traceid
WHERE tblTraces.enabled = 1
AND tblResults.traceid.changed = 1
GROUP BY tblTraces.traceid

列的限制确实使连接变得复杂。

关于MySQL - 将这两个查询与连接或子查询连接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591606/

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