更新tablename set(col1,col2,col3)=(按tablenmae2.col4从tableName2顺序选择col1,col2,col3)返回错误 失踪 )。如果我删除order by子句
,查询工作正常答案 0 :(得分:2)
UPDATE中的子查询中不允许使用ORDER BY。因此,您会收到错误“Missing”,因为解析器期望子查询在您拥有ORDER BY的位置结束。
答案 1 :(得分:0)
ORDER BY打算做什么?
你可能想到的是:
UPDATE TableName
SET (Col1, Col2, Col3) = (SELECT T2.Col1, T2.Col2, T2.Col3
FROM TableName2 AS T2
WHERE TableName.Col4 = T2.Col4
)
WHERE EXISTS(SELECT * FROM TableName2 AS T2 WHERE TableName.Col4 = T2.Col4);
这种笨拙的操作:
某些DBMS还支持更新连接表示法,以减少此表示法的可怕性。