2013-07-24 177 views
1

我在更新表中的記錄時遇到問題。我整天都在做研究,但它只是在我之外。如何使用另一個表更新表記錄

基礎知識:我有兩個表

TABLE1 enter image description here

TABLE2 enter image description here

我需要從TABLE1更新nr_g來自TABLE2 ID,但只有在「捷克州'區「nazwa_hotelu 'TABLE1等於'country''region''hotelName'from TABLE2

我嘗試到目前爲止:

UPDATE merlinx u 
     LEFT JOIN 
    merlinx_new s ON u.nr_g != s.id 
SET 
    u.nr_g = s.id 
WHERE 
    u.kraj = s.country AND u.nazwa_hotelu = s.hotelName AND u.region = s.region 

正在更新我的只有4行...和1592是不安全的語句

我的一個鏡頭:

UPDATE merlinx_merged 
SET 
    nr_g = (SELECT 
      merlinx_new.id 
     FROM 
      merlinx_new 
       INNER JOIN 
      merlinx_merged 
     WHERE 
      merlinx_new.country = merlinx_merged.kraj 
       AND merlinx_new.hotelName = merlinx_merged.nazwa_hotelu 
       AND merlinx_new.region = merlinx_merged.region) 

而這僅僅是引發錯誤。

8小時後,我的腦海裏就被炸了。非常感謝幫助。

回答

2

我認爲你的問題是在你的聯合聲明。你有

LEFT JOIN merlinx_new s ON u.nr_g != s.id 

你不應該有ON標準(如果我正確理解你的問題)。

如果你想用merlinx_new.id中的值覆蓋merlinx.nr_g,如果你的所有條件在WHERE子句中都匹配,這應該會有效。

UPDATE merlinx u, merlinx_new s 
SET u.nr_g = s.id 
WHERE u.kraj = s.country AND u.nazwa_hotelu = s.hotelName AND u.region = s.region 
+0

非常感謝! –

相關問題