[英]SQL Update table(1) to values from another, based on conditions within Table 1
我正在嘗試創建一種轉換工具,該工具將根據特定條件使用新值更新一組數據。
表A的列為Scheme1,Class1,條件1,條件2,
表B列出了我需要更新為所有可能的Scheme2,Class2的列表。
基本上,表A中的所有內容都為需要更新的內容設置了條件。 這是我遇到的困難。
我正在按照
UPDATE table_A
SET class1 = table_B.class '1'
WHERE IN (class1= '1', condition1 = '1', condition2 = '2')
然后針對所有分類重復此操作。 大約有50個分類。
這是在正確的軌道上嗎,還是有更快/更清潔的方法來做到這一點? 我是否還需要第二張表,或者可以直接更新它? 僅創建第3個而不是更新原始表會更容易嗎? (轉換后,我需要將此數據移到SQL之外)
如果我對您的理解正確,那應該可以
UPDATE a
SET class1 = b.class
FROM
TableA a
JOIN TableB b ON a.scheme = b.scheme
WHERE
a.condition1=...
AND a.condition2 = ...
首先從SELECT的角度着手開發UPDATE語句,然后以所需的方式檢索值后,將select轉換為UPDATE。
首先構建一個SELECT以可視化結果。 用什么更新什么 。
SELECT a.class1
b.class1
FROM table_A AS a
INNER JOIN table_B AS b
ON a.id = b.id
WHERE a.condition1 = '1'
現在,您可以將其修改為UPDATE。
--SELECT a.class1
-- b.class1
UPDATE a
SET a.class1 = b.class1
FROM table_A AS a
INNER JOIN table_B AS b
ON a.id = b.id
WHERE a.condition1 = '1'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.