首页 新闻 搜索 专区 学院

两表连接批量修改字段值

0
悬赏园豆:10 [已解决问题] 解决于 2016-07-20 15:13
UPDATE bk LEFT JOIN ds ON bk.`a`=ds.`a`
SET bk.`STATUS`=ds.`STATUS` WHERE ds.`OWNER`='admin';

将ds的status字段值同步到bk的status字段,但是如果bk里面有的数据而ds里面没有就无法修改,怎么样才能把这些数据的status字段值修改成“done”

 

风归云隐的主页 风归云隐 | 菜鸟二级 | 园豆:416
提问于:2016-07-15 12:06
< >
分享
最佳答案
0

在SQL Server中实现的大概思路:

UPDATE bk 
SET bk.`STATUS`=ISNULL(ds.`STATUS`, 'done')
FROM bk 
LEFT JOIN ds ON bk.`a`=ds.`a`
WHERE ds.`OWNER`='admin';
收获园豆:10
dudu | 高人七级 |园豆:38801 | 2016-07-15 13:15

额,我这边用的是mysql,而且在mysql里面

SELECT bk LEFT JOIN ds ON bk.`a`=ds.`a`
SET bk.`STATUS`=ds.`STATUS` WHERE ds.`OWNER`='admin';

where子句里面带有右表字段的约束条件的话,只能查到左右表都有的数据,效果就和INNER JOIN一样了,没用过SQL Server,不知道SQL Server是不是也这样

风归云隐 | 园豆:416 (菜鸟二级) | 2016-07-15 16:02
SELECT bk LEFT JOIN ds ON bk.`a`=ds.`a`
WHERE ds.`OWNER`='admin';

前面的sql写错了

风归云隐 | 园豆:416 (菜鸟二级) | 2016-07-15 16:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册