早教吧 育儿知识 作业答案 考试题库 百科 知识分享

两张结构相同的表合并到一起的sql语句A、B两表结构相同,现要求将B表的数据加入到A表中,其中如果他们的主键不相同的,则直接添加,如果主键相同的,则要用B表中的数据替换掉A表中的

题目详情
两张结构相同的表合并到一起的sql语句
A、B两表结构相同,现要求将B表的数据加入到A表中,其中如果他们的主键不相同的,则直接添加,如果主键相同的,则要用B表中的数据替换掉A表中的数据。举例:
A表 (姓名、科目为联合主键)
张三 语文 50
李四 数学 60
B表
张三 语文 80
张三 数学 90
要求合并后:
A表
张三 语文 80
张三 数学 90
李四 数学 60
▼优质解答
答案和解析
Try
INSERT INTO A
SELECT *
FROM B WHERE NOT EXISTS (SELECT 1 FROM A WHERE 姓名 = B.姓名 AND 科目 = B.科目)
UPDATE A t
SET score = (select score from B WHERE t.姓名 = B.姓名 AND 科目 = t.科目)