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
答案 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
我没有所有表格的详细信息,但我希望通过这个例子可以更清楚