基于其他表行更新行

时间:2012-03-07 04:41:32

标签: mysql sql

我曾经在sql查询中吮吸我有2个表和2行1表是user_sets,第二个是user_profiles我需要更新user_sets行基于user_profiles表的行。 我举一个例子。

数据库结构

table  User_sets
row    n_color_pack
-------------
table  User_profiles
row    gander
---------------------

查询:

UPDATE user_sets
   SET n_color_pack = 1
  FROM user_profiles, 
       user_sets
  WHERE gander = '0';

如您所见,我想通过为性别为0的每个人设置n_color_pack 1来更新User_sets表。

1 个答案:

答案 0 :(得分:2)

您需要JOIN表来实现此目的。这样的事情应该有效(未经测试):

    UPDATE user_sets as s
    INNER JOIN user_profiles as p
    ON s.id = p.id
    SET s.n_color_pack = 1    
    WHERE p.gander = 0

更改s.idp.id,具体取决于哪个列连接您案例中的两个表。

(感谢ruakh指出我的语法错误)