gpt4 book ai didi

sql - 将两个表中的几列合并为一行,分别为前一个表中的id

转载 作者:行者123 更新时间:2023-11-29 13:34:45 29 4
gpt4 key购买 nike

如果有表A和表B,它们的结构如下:

一个:

id

1
2

乙:

col_1    col_2

m q
n w

SQL如何获取下面C的结果?

id     col_1   col_2    col_1  col_2 

1 m q n w
2 m q n w

对于B表中的每一条数据,都与A表中的id相关联,将两个表拼接成C表后,一旦C表中的id发生变化(属于A表中的id),对应的行在表 C 中更改。所以为了得到最终的表C,应该对表C中的每条数据进行一些计算(col_1, col_2, col_1 col_2)

最佳答案

据我了解,您希望从表 B 中获取所有行并将其作为列与表 A 中的 id 关联。

我认为仅通过查询是不可能的(不知道过程是否可以解决它),但我有一个方法可能会有所帮助(我在 MySQL 上测试过)。

SELECT 
`a`.`id`,
GROUP_CONCAT(`b`.`key`) AS `keys`,
GROUP_CONCAT(`b`.`value`) AS `values`
FROM `a`, `b`
GROUP BY `a`.`id` ASC;

结果我们有:

 ---- ------ --------| id | keys | values | ---- ------ --------|  1 | m,n  | 3,4    ||  2 | m,n  | 3,4    | ---- ------ --------

列键中的第一个键和列值中的第一个值指的是表b的第一行。第二个是指第二行,依此类推。这样,您只需要在分隔符“,”上使用一些服务器端代码进行拆分。

我搜索了从 Postgres 到 MySQL GROUP_CONCAT 的匹配命令,发现 STRING_AGG 可能做同样的工作。

希望对您有所帮助!

关于sql - 将两个表中的几列合并为一行,分别为前一个表中的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15527163/

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