U sing the selected answer here,我试图制作一个MySQL查询,该查询选择列和设置值,但得到的是“每个派生表必须具有自己的别名”。我只有两个表:matrix_swfl_res和RLN分别定义为e和d。我想念什么?

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

最佳答案

如果您认为答案已链接,则在要更新表时必须进行联接

这里的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


我没有所有表格的详细信息,但我希望通过此示例可以使它更清晰

09-25 20:26