gpt4 book ai didi

mysql - 用聚合函数连接两个表

转载 作者:行者123 更新时间:2023-12-04 10:53:15 26 4
gpt4 key购买 nike

我有三张 table 需要合并。我的第一个表(外表)具有所有对象的 id。表 A 的人对外部表的 id 表示支持,表 B 的人对外部表的 id 表示反对。

我想将这 3 个表组合成 1 个包含计数的大表。见结果表。计数表 A 指的是特定 id 在表 A 中出现的次数。如何将这些组合到最终表中?

外表

id
---
1
2
3
...

表A
id | foreign_id
-----------------------
1 3
2 3
3 1

表 B
id | foreign_id
-----------------------
1 3
2 1
3 2

结果表
id | count table A   | count table B
------------------------------------
1 1 1
2 0 1
3 2 1

最佳答案

可能最快的方法是相关子查询:

select f.*,
(select count(*) from a where a.foreign_id = f.id) as a_cnt,
(select count(*) from b where b.foreign_id = f.id) as b_cnt
from foreign f;

这避免了 GROUP BY在外部查询上。作为奖励,它可以使用 a(foreign_id) 上的索引。和 b(foreign_id)这也有利于性能。

关于mysql - 用聚合函数连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59361967/

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