由于我的访问受限,我一次只能运行一个查询。通常,我必须运行类似于下面几个ID的查询。它一个接一个地变成了一个非常耗时的任务。
UPDATE table1
SET columnA = X,
columnB = (SELECT max(columnC) FROM table2 WHERE id = <ID>)
WHERE id = <ID>
理想情况下,我想在{id1,id2,...}中使用id之类的内容,但ID的两个实例必须相同。
我正在尝试修改查询,以便它可以在单个查询中处理ID的数量。
=============================================== ===
解决方案(实际上非常简单):
UPDATE table1
SET columnA = X,
columnB = (SELECT max(columnC) FROM table2 WHERE id = table1.id)
WHERE id in (id1, id2, ...)
答案 0 :(得分:0)
你可能想试试这个。
用于T-SQL:
UPDATE a
SET a.columnA = X,
a.columnB = max(b.columnC)
FROM table1 a INNER JOIN table b ON a.id = b.id
WHERE a.id IN ('ID','HERE',...)
<强>更新强>
for MySQL:
UPDATE table1 a INNER JOIN
(SELECT id, Max(columnC) As iMax
FROM table12
GROUP BY id) b ON a.id = b.id
SET a.columnA = X,
a.columnB = b.iMax
WHERE a.id IN ('ID','HERE',...)
答案 1 :(得分:0)
试试贝尔沃。请做必要的更改,因为我已经解释了要做的事情
UPDATE table1 as t1 INNER
JOIN (
SELECT id
, Max(columnC) As maxval
FROM table12
GROUP
BY id
) As t2 ON t1.id= t2.id
SET columnA = t1.x
FROM columnB = t2.maxval
WHERE id = <ID>