突然接到这样的一个需求:假设现在有3张有相关联的表A、B、C、,现在我要更新表A的数据,但是现在要求更新A表的数据{id}存在B表中,同时又要存在于C表中,起初在想SQL 的Update语句好像只有单纯的所以感到很懊恼不知如何下手:

SQL 语句

UPDATE A 
    SET 要更新的数据
WHERE id=相关值 


后来想想如果用判断语句来对其进行约束其更新的数据存在于B、C表

SQL 语句

IF (SELECT COUNT(1) FROM B WHERE A_id=id)>0 AND (SELECT COUNT(1) FROM C WHERE A_id=id) >0
BEGIN
    UPDATE A
        SET 要更新的数据
    WHERE id=相关值
END


后来在网上找到了类似的其实是可以用Join 语句来操作的就是在我们写了更新语句的条件前下Join的相关联的表

SQL 语句


UPDATE A 
    SET 要更新的数据
FROM A
LEFT JOIN B ON A.id = B.A_id
LEFT JOIN C ON A.id = C.A_id
WHERE id = 相关值


就这样处理了这个问题  所以做个笔记记录下