我有两个表客户和订单。我想用一个查询更新两个表中的不同值。例如,客户表有一个城市列,值是德国,订单表有状态列,值保持,我想将德国更改为伦敦并保持解决一个查询。这是下面的查询
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显示此查询的错误
答案 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";