内部联接的mysql更新查询

时间:2015-08-23 13:40:03

标签: mysql

我有两个表客户和订单。我想用一个查询更新两个表中的不同值。例如,客户表有一个城市列,值是德国,订单表有状态列,值保持,我想将德国更改为伦敦并保持解决一个查询。这是下面的查询

UPDATE customer,order INNER JOIN order ON customer.cust_id = order.cust_id SET cust_city = 'Lahore' AND order_status= 'Resolved' WHERE cust_id = 2 

mysql显示此查询的错误

2 个答案:

答案 0 :(得分:11)

MySQL支持此操作:

UPDATE customer c INNER JOIN
       order o
       ON c.cust_id = o.cust_id
    SET c.cust_city = 'Lahore',
        o.order_status = 'Resolved'
    WHERE c.cust_id = 2 ;

注意:order对于表来说是一个非常糟糕的名称,因为它是一个SQL关键字。为不需要转义的内容选择名称。

答案 1 :(得分:0)

使用SQL中的联接查询进行更新非常简单。您甚至可以联接两个或多个表。这是一个示例:

    UPDATE customer_table c 

     INNER JOIN  
          employee_table e
          ON c.city_id = e.city_id  
     INNER JOIN 
          anyother_ table a
          ON a.someID = e.someID

    SET c.active = "Yes"

    WHERE c.city = "New york";