gpt4 book ai didi

mysql - 使用 Sum 条件连接两个表

转载 作者:行者123 更新时间:2023-11-29 02:50:35 24 4
gpt4 key购买 nike

我有一个查询,我根据从该表中选择的 ID 在值字段上生成总和:

SELECT Z,Sum(Z_N) FROM `TableA` 
WHERE `N_ID` in ('7703','7674','7689','7690','7691','7700','7719')
group by Z
having Sum(Z_N) > 65

但是我需要从第二张表中动态获取 ID 列表,到目前为止我已经自行管理了它:

Select group_concat(N_ID) from Table2 where N2_ID ='7703'

N2_ID='7703' 实际上是我通过代码推送的变量。然而,我试图让第二个查询“内部”第一个替换手册 ('7703','7674','7689','7690','7691','7700','7719' )

很明显(我认为)这是某种连接,但在这个星期六早上它让我逃脱了。

最佳答案

INNER JOIN 可以过滤您的结果。

SELECT TableA.Z,Sum(TableA.Z_N) 
FROM `TableA`
INNER JOIN Table2 ON Table2.N_ID = TableA.N_ID
where Table2.N2_ID ='7703'
group by TableA.Z
having Sum(TableA.Z_N) > 65

为了性能,您应该(至少)在 Table2(N2_ID)TableA(N_ID, Z) 上建立索引。索引 Table2(N2_ID, N_ID)TableA(N_ID, Z, Z_N) 可能更好,因为完整的查询只对索引进行操作。

注意:如果 Table2.N_ID 是唯一的(或主键),这将起作用。否则,您可能会得到意想不到的结果。

关于mysql - 使用 Sum 条件连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36517947/

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