簡體   English   中英

根據表1中的條件將SQL更新表(1)轉換為另一個表中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM