2011-07-03 90 views
1

爲此嘗試了各種不同的選項並剛剛進入路障。根據另一個表中的值更新值

我有兩個表。每次在customefieldvalue表中stringvalue是'Minor'我想在問題表中將優先級更新爲4。

UPDATE issue SET priority = '4' 
FROM customfieldvalue 
WHERE customfieldvalue.stringvalue = 'Minor'; 
+2

兩張桌子如何相互關聯/相關? WHERE子句中沒有這樣的條件。 –

+0

你有什麼錯誤? – Flimzy

+0

我忘了那裏的價值。 – shinyidol

回答

2

我認爲這些表格是以某種方式相關的,比如說在IssueId字段上。所以,你可以做這樣的事情:

UPDATE issue 
SET priority = '4' 
WHERE IssueId IN (SELECT IssueId FROM customfieldvalue WHERE stringvalue = 'Minor') 

你可能也希望在嵌套查詢在where子句中的條件來縮小自定義字段是一個你相當後不是與任何自定義字段值「次要」,如:

WHERE customfieldname = 'PRIORITY' AND stringvalue = 'Minor' 

,如果你是要運行這一切的時候,那麼你應該過濾掉已經在主要的正確值的那些where子句:

WHERE priority <> '4' AND IssueId IN (... 
+0

非常好的答案。 – hidden

+0

感謝您的幫助。我知道你的建議。 – shinyidol

相關問題