2016-10-13 96 views
0

U sing the selected answer here,我試圖製作一個MySQL查詢,選擇列和設置值,但得到'每個派生表必須有自己的別名'。我只有兩個表:matrix_swfl_res & RLN,我已經分別定義爲e & d。我錯過了什麼?從兩個表MYSQL更新選擇

UPDATE (SELECT e.MLSNumber, d.MLSNumber 
      FROM matrix_swfl_res e, RLN d 
     WHERE e.MLSNumber = d.MLSNumber) 
    SET e.RSLN = d.RSLN 
+0

你沒有閱讀你正在鏈接的答案? –

+1

這類問題有時表明設計不佳 – Strawberry

回答

1

如果你考慮答案的聯繫,你必須做,當你想更新表加入

這裏的MySQL錯誤是因爲

(SELECT e.MLSNumber, d.MLSNumber 
      FROM matrix_swfl_res e, RLN d 
     WHERE e.MLSNumber = d.MLSNumber) 

被considerated作爲推導表,你寫它,就像你想更新這個派生表。

如果我理解你想要什麼: 你要更新的表格中的一些選擇您先前所做的一樣,這裏是你需要做什麼:

UPDATE A 
INNER JOIN (SELECT e.MLSNumber, d.RSLN 
       FROM matrix_swfl_res e 
        INNER JOIN RLN d ON e.MLSNumber = d.MLSNumber) as Q 
    ON A.MLSNumber= Q.MLSNumber) 
SET A.RSLN = Q.RSLN 

我沒有所有表細節,但我希望這個例子會更清晰

1

你的鏈接回答問題的第二部分是你所需要的 - 有點像

UPDATE matrix_swfl_res e 
    INNER JOIN RLN d ON e.MLSNumber = d.MLSNumber 
    SET e.RSLN = d.RSLN