gpt4 book ai didi

mysql - 将两个选择合并为一个

转载 作者:行者123 更新时间:2023-11-29 07:30:37 25 4
gpt4 key购买 nike

我有几张 table 。我会尽量让它变得简单:Table_1 ID 是唯一的。 Table_2 ID 不唯一。 table_2 存储 table_1 上一行的 ID 和一个值,例如,结果如下:

table_1
ID | A
------
1 | a
2 | b
3 | c

table_2
ID | B
------
1 | x
1 | y
3 | z

我想计算 table_2 上每个 ID 有多少个,所以我这样做了

select t1.id, count(*)
from table_1 t1
group by t1.id

id | count
----------
1 | 2
3 | 1

我想列出 table_2 上的每一行及其在 table_1.A 上的相应值,所以我这样做了

select t1.id, t1.A, t2.B
from table_2 t2
left join table_1 t1
on t1.id = t2.id

ID | A | B
----------
1 | a | x
1 | a | y
3 | c | z

有没有办法将这两个选择合并为一个,以获得这样的结果?

ID | A | B | count
------------------
1 | a | x | 2
1 | a | y | 2
3 | c | z | 1

最佳答案

您可以通过加入 count 结果来合并结果。

Fiddle with sample data

select t1.id, t1.A, t2.B, x.cnt as count
from t2
left join t1
on t1.id = t2.id
join (select t2.id, count(*) as cnt
from t2
group by t2.id
) x
on x.id = t1.id

关于mysql - 将两个选择合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32762163/

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