两个表中的MYSQL UPDATE SELECT

时间:2016-10-13 15:46:45

标签: mysql

U sing the selected answer here,我试图制作一个选择列和设置值的MySQL查询但是得到一个'每个派生表必须有自己的别名'。我只有两张桌子:matrix_swfl_res& RLN,我已经定义为e&分别为。我错过了什么?

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

2 个答案:

答案 0 :(得分:1)

您的链接答案的第二部分就是您所需要的 - 例如

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

答案 1 :(得分:1)

如果您认为答案已关联,则在您想要更新表格时必须执行加入

这里的mysql错误是因为

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

被认为是一个派生表,当你编写它时,就像你想要更新这个派生表一样。

如果我理解你想要的东西: 您想要使用先前已完成的选择来更新表A,以下是您需要执行的操作:

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 

我没有所有表格的详细信息,但我希望通过这个例子可以更清楚

相关问题