2014-02-20 77 views
1

我想運行下面的查詢來使用case語句更新基於另一個表中的值的表。我得到以下錯誤。使用case語句(MYSQL)基於另一個表中的值更新一個表

Error Code: 1064 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from tbl_a as a, tbl_b as b 
    WHERE a.DIV_NO = b.' at line 12 

下面是該查詢:

UPDATE a 
    SET 
    a.MIN_5 = b.Min_Five, 
    a.IN_PR = b.Ad_Flag , 
    a.FRC = (
        CASE 
         WHEN b.Prc_Fl = 'N' THEN 'Y' 
         WHEN b.Prc_Fl = 'Y' THEN 'N' 
         ELSE 'D' 
        END 
      ) 
    FROM tbl_a AS a, tbl_b AS b 
    WHERE a.DIV_NO = b.Div_num 
    AND a.OFR_ID = b.Flg ; 

回答

2

JOIN

UPDATE 
    tbl_a AS a 
    JOIN 
    tbl_b AS b ON (a.DIV_NO = b.Div_num AND a.OFR_ID = b.Flg) 
    SET 
    a.MIN_5 = b.Min_Five, 
    a.IN_PR = b.Ad_Flag, 
    a.FRC = 
    CASE 
     WHEN b.Prc_Fl = 'N' 
     THEN 'Y' 
     WHEN b.Prc_Fl = 'Y' 
     THEN 'N' 
     ELSE 'D' 
    END 
+0

你的問題試試這個是不是這樣的語句,它是從上述確定;您可以刪除CASE語句,但仍然會出現相同的錯誤。 – mhoglan

+0

謝謝你Junaid ..它的工作原理! – user3333737

+0

是的,你是對的mhoglan。即使沒有案件陳述,我也會得到這個錯誤。我嘗試了連接,但是我在set命令之後執行了連接,而不是在之前再次顯示語法錯誤。無論如何,謝謝你幫助我。 – user3333737

相關問題