如果利用主键将两个表的数据合并

aifanwen 2023-05-26 15:15:26

如果利用name将两个表的数据合并,如图所示

 

 

...全文
147 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-05-26
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/7952126, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
于扶摇 2023-05-28
  • 打赏
  • 举报
回复

import pandas as pd  
  
# 读取 Table A 和 Table B 的数据  
df_a = pd.read_csv('path/to/table_a.csv')  
df_b = pd.read_csv('path/to/table_b.csv')  
  
# 使用 'name' 列将两个表格合并  
merged_df = pd.merge(df_a, df_b, on='name')  
  
# 打印合并后的数据框  
print(merged_df)
weixin_48520345 2023-05-26
  • 打赏
  • 举报
回复 1

解题思路:行数据转列
① 先把表2的数据进行处理 使其行数据转为列展示
SELECT name 姓名,
max(CASE label WHEN'年龄' THEN age ELSE 0 END) 年龄,
max(CASE label WHEN'性别' THEN age ELSE 0 END) 性别,
max(CASE label WHEN'年级' THEN age ELSE 0 END) 年级
FROM b
GROUP BY name

img

② 把①处理的数据作为临时表,用表①进行外连接查询
select a.name,a.place,c.年龄,c.性别,c.年级 from a left join (SELECT name 姓名,
max(CASE label WHEN'年龄' THEN age ELSE 0 END) 年龄,
max(CASE label WHEN'性别' THEN age ELSE 0 END) 性别,
max(CASE label WHEN'年级' THEN age ELSE 0 END) 年级
FROM b
GROUP BY name) c on a.name=c.姓名

img

56,723

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧