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”
在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';
额,我这边用的是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是不是也这样
SELECT bk LEFT JOIN ds ON bk.`a`=ds.`a` WHERE ds.`OWNER`='admin';
前面的sql写错了