sql - 查询以将值合并到相关表中的记录中
问题描述
我有一个表“A”:
ID_A Name ID_B
1 John 1
2 Mary 2
3 John 2
4 Mary 1
5 Peter 1
还有一个表“B”:
ID_B Keys
1 Mousse
2 Banana
我想用这个结果创建一个表:
ID_B Keys Name1 Name2 Name3
1 Mousse John Mary Peter
2 Banana Mary John Null
是否有任何查询来构建它?
谢谢
解决方案
这并不完全符合您的描述,这是不确定的列数。我不知道仅使用 SQL 的方法。
也就是说,PostgreSQL 有很好的数组支持,这可以让你完成 90% 的工作。
select
b.id_b, array_agg (a.name) as names
from
b
join a on
b.id_b = a.id_b
group by
b.id_b
您甚至可以将其混合并执行以下操作:
array_agg (a.name order by a.id_a)
或者
array_agg (distinct a.name)
推荐阅读
- scala - Shapeless,如何证明 Nat 在 Sized 范围内?
- node.js - 使用express js和mongodb发布插入多个数据
- python - POST请求表Python3
- java - 即使在调用 getMapAsync 之后,android google maps onMapReady 也没有执行
- linux - 无法在 EC2 linux 机器上运行 Taurus 和 ChromeDriver(非无头)
- python - 如何将登录的(经过身份验证的)用户分配给他们提交的表单数据?
- image-processing - 如果我将输入大小设置为 32,32 mnist 会发生什么
- json - 过滤 JSON 数据 arduino
- sql - SQL:了解 FULL OUTER JOIN 的工作原理
- fft - 如何通过 FFT 计算卷积和相关的组合?