SQL新增(Insert)时关联多表条件(Left Join )




突然接到这样的一个需求:假设现在有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 = 相关值


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

打赏

取消 我去学网

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少
微信

打开微信扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

  1. #2

    木庄网络博客(2016/10/28 11:41:03)
    不错的网站主题,看着相当舒服

  2. #1

    木庄网络博客(2016/10/14 21:02:39)
    博客做得好漂亮哦!