如何通过单个mysql查询更新多个表?

sto*_*Boi 2 mysql database

我有两个表tb1和tb2我必须更新两个表的公共列,即user_level我对两个表都具有相同的条件,例如用户名。

所以我想这样更新:

UPDATE tb1, tb2 SET user_level=1 WHERE username="Mr.X"
Run Code Online (Sandbox Code Playgroud)

但是它不起作用。什么是正确的mysql查询呢?

Abh*_*Dey 5

您的问题已解决,只需按照我所做的操作-

创建表 tb1(user_level int); 创建表 tb2(user_level int,username varchar(20));

插入 tb1 值(2);插入 tb2 values(2,'Mr.X');

我有两个这样的表,其中 user_level 是常见的,现在根据您的说法,我尝试使用一个查询来更新两个表中的 user_level 列,该列对两个表的通用条件(即用户名)进行查询。

我尝试使用单个查询将两个表中 user_level 列的值从 2 更新为 3,其中用户名是“Mr.X”,所以我尝试了以下查询,并且它完美地工作..

          update tb1 inner join tb2

          on tb1.user_level=tb2.user_level 

              set tb1.user_level=3,

                  tb2.user_level=3

             where tb2.username='Mr.X' ;
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个:

UPDATE table_1 tb1, 
       table_2 tb2, 
       table_3 tb3 
SET    tb1.field2 = "some value", 
       tb2.field3 = "some other value", 
       tb3.field4 = "some another value" 
WHERE  tb1.field1 = tb2.field1 
       AND tb1.field1 = tb3.field1 
       AND tb1.field1 = "value" 
Run Code Online (Sandbox Code Playgroud)

我在MSAccess和SQL SERVER 2008上测试了代码

  • 将来尝试更好地格式化代码。这次我照顾好了。还尝试添加解释,仅代码块可能对将来寻找问题答案的任何人都没有帮助。 (7认同)