天天看点

数据库MySQL中关于“多表关联更新”的那些事

  在常见的sql中,我们经常在查询中进行多表关联查询,用的比较熟练。今天在开发中遇到一个实际业务场景是多表关联更新,一时不知所措。本着多学习的态度,没有直接写java代码去实现,终于把多表关联更新的sql弄清楚了。下面将实际业务场景进行简化,分别有person表和information表,最终目的是将 information表中的年龄更新到person表中的每个人的年龄。分别写了几个sql demo来把多表更新的知识理解透彻。

  首先,在更新前,person表和information表分别如下:

information表

 person表

1. CASE1

  sql :update information,person SET information.phone='13812345678',person.age = '18' WHERE information.name = person.name

  更新后的information表和person表分别如下

         

  当然,还有一种方式可以实现上面的功能

  sql:UPDATE information JOIN person on information.name = person.name SET information.phone='13811111111',person.age = '18'

  或者是

  sql:UPDATE information LEFT JOIN person on information.name = person.name SET information.phone='13811111111',person.age = '18'

2.  CASE2  

  sql:UPDATE information RIGHT JOIN person on information.name = person.name SET information.phone='13922222222',person.age = '19'

  更新后的information表和person表分别如下

      

 3.  CASE3

  sql:  UPDATE information JOIN person on information.name = person.name SET information.age=person.age

     

   通过上述几个例子,相信关于多条关联更新的分析应该是比较透彻了。多学习,多成长。