sql 表A、表B字段相同,判断2个表中id、age都相同时,将B表的其他字段数据更新到A表中

sql 表A、表B字段相同,判断2个表中id、age都相同时,将B表的其他字段数据更新到A表中。
当id、age中有一个数值不同,将这条信息插入到A表中
例:
表A 表B
id name age number id name age number
1 张三 20 123456 1 张三 20 654321
2 李思 19 234567 2 李想 20 234467
3 李思思 19 562389
4 李思 21 123456
执行后
id name age number
1 张三 20 654321
2 李思 19 234567
2 李想 20 234467
3 李思思 19 562389
4 李思 21 123456

如何写sql语句
最新回答
纯味野猫

2024-05-25 01:10:49

UPDATE A SET A.phone = B.phone
FROM TestA A
JOIN TestB B
ON A.ID = B.ID and A.age =B.age
INSERT INTO TestA(ID,age,name,phone)
Select B.ID,B.age,B.name,B.phone
FROM TestB B
LEFT JOIN TestA A ON B.ID=A.ID AND B.age=A.age
Where A.phone is null
/*
使用LEFT JOIN 将B表中的所有资料取出
因为 ON 使用的是 ID与age必须全部相等,
所以用Where A.phone is null 将其中有任何一项不等的取出,过滤掉全等的项
*/