sql 表A、表B字段相同,判断2个表中id、age都相同时,将B表的其他字段数据更新到A表中
sql表A、表B字段相同,判断2个表中id、age都相同时,将B表的其他字段数据更新到A表中。当id、age中有一个数值不同,将这条信息插入到A表中例:表A表Bidnam...
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语句 展开
当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语句 展开
1个回答
展开全部
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 将其中有任何一项不等的取出,过滤掉全等的项
*/
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 将其中有任何一项不等的取出,过滤掉全等的项
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询