Mysql更新列基于另一个表的字符串

时间:2013-08-24 16:43:41

标签: mysql sql

我需要在名为PrebookCB的表中更新名为Workorders的列,如果表Customers中的CustomerStatus列等于字符串'Good - Prebook',则将其设置为1。我尝试过各种各样的连接,似乎无法让它发挥作用。这似乎是最接近的。每个客户都会有多个工作人员。工作程序有一个名为CustomerID的列,它与Customers主要索引列CustomerID

相匹配
UPDATE Workorders
       JOIN Customers
       ON Workorders.CustomerID = Customers.CustomerID
SET    Workorders.PrebookCB = 1
WHERE  Customers.CustomerStatus = 'Good - Prebook'

2 个答案:

答案 0 :(得分:2)

你试过这个吗?

UPDATE Workorders SET PrebookCB = 1 
WHERE CustomerID IN 
    (SELECT CustomerID FROM Customers 
    WHERE CustomerStatus = 'Good - Prebook')

答案 1 :(得分:0)

试试这个,

Update Workorders
set prebookCB = 1
where CustomerID in (select customerid from customers 
where customeerstatus='Good-Prebook')

在此,UPDATE适用于您所需的表。 WHERE通过比较要在子查询的结果中出现的customerID来过滤要更新的记录。子查询,只有在具有apt状态时才会进一步过滤并从customers表中选择customerID。

希望这有助于解释!