2013-08-24 139 views
0

我需要在名爲Workorders的表中更新名爲PrebookCB的列,如果表Customers中的CustomerStatus列等於字符串'Good - Prebook',則將其設置爲1。我已經嘗試過各種連接,並且似乎無法使其工作。這似乎是最接近的。每個客戶都會有多個工作單。工作訂單有一個名爲CustomerID列調用客戶ID基於另一個表中的字符串的Mysql更新列

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

回答

0

試試這個客戶主索引列匹配,

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

在這方面,更新工作在你想要桌子。 WHERE通過比較要存在於子查詢結果中的customerID來過濾要更新的記錄。子查詢進一步篩選並僅在客戶表具有apt狀態時才從customers表中選擇customerID。

希望這有助於解釋!

+0

這個答案與rakeshjain的回答有何不同 –

+0

由於某些原因,0行受到了影響,但我知道有290個客戶的CustomerStatus是'Good - Prebook'。還有什麼可能影響它呢? – user2120901

+0

@PraveenPrasannan,我正在打字,當答案發布時,所以不知道。 – Rijul

2

你試試這個

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

出於某種原因,0行受到影響,但我知道有290個客戶的CustomerStatus爲「Good - Prebook」。還有什麼可能影響它呢? – user2120901

+0

你可以運行「SELECT CustomerID FROM Customers WHERE CustomerStatus ='Good - Prebook'」查詢來檢查你是否獲得了290行? – rakeshjain

相關問題