2015-05-04 35 views
2

我搞清楚有關與查詢映射(基於密鑰)如何關鍵。我得到了這樣的答案,查詢更新表基於不同的表

UPDATE Table1 
    SET group1 = CASE customer_code 
     WHEN 'a' THEN 'groupAB' 
     WHEN 'b' THEN 'groupAC' 
    END, 
    group2 = CASE customer_code 
     WHEN 'a' THEN 'group12' 
     WHEN 'b' THEN 'group13' 

    END 
WHERE customer_code IN ('a','b') 

但是,它需要大量的努力,當有這麼多鍵的例子,我有百元以上的鍵,其映射,並更新到表中。

我的問題是,有沒有輕鬆的根據從2代表相同的密鑰更新任何查詢。我得到這個查詢,

update Table1 t1 
set 
    (
    t1.group1 
    ) = (
    select 
     t2.group2 
    from 
     Table2 t2 
    where 
     t2.name2 = t1.name1 
    ) 

不過,我總是得到錯誤消息像「2號線:附近有語法錯誤‘T1’ 是使用別名這裏不能正常工作?

在此先感謝。

+0

添加另一個表密鑰和組映射和不參加 – Guanxi

回答

4

使用此語法:

UPDATE 
    Table1 
SET 
    Table1.group1 = Table2.group2 
FROM 
    Table1 
INNER JOIN 
    Table2 
ON 
    Table1.name = Table2.name