想象一下以下3个表:
表-A:| ID | A-数据|排序数据|
表-B:| A-ID | B数据|
表-C:| A-ID | C-Data |
表A的行数远少于其他2个表。我要做的是使用Sorting& amp;破坏5个块中的Table-A。限制(每次20%)。现在我知道我可以很容易地根据这个限制更新表格A的数据。但是,我无法对其他表进行排序和限制,因为他们没有排序数据 - 他们只是拥有表A中的ID。
我能做到这么快吗?我是否必须收集所有ID并使用IN运算符?我是否必须使用ID加入所有表格然后更新?我可以用来快速执行此操作的最佳查询是什么?
答案 0 :(得分:1)
UPDATE TableA AS a
JOIN TableB AS b ON a.id = b.Aid
JOIN TableC AS c ON a.id = c.Aid
JOIN (SELECT id
FROM TableA
ORDER BY SortData
LIMIT 5) AS asorted ON a.id = asorted.id
SET a.adata = x, b.bdata = y, c.cdata = z