[英]Update statement with multiple tables and Order By and LIMIT in mySql
[英]UPDATE multiple different tables with ORDER BY and LIMIT MYSQL
對於初學者,我知道這是不可能的,我必須使用某種方式進行選擇,但不確定如何做到這一點。 這是我現在簡化的查詢。
UPDATE table1 AS tb1
LEFT JOIN table2 AS tb2 ON (tb1.id = tb2.id AND tb1.column1 = tb2.column1)
SET
tb1.columX = (@position_temp := @position_temp+1),
tb1.columY = 2,
tb1.columZ = 3,
tb2.columA = 0
WHERE tb1.id = X AND tb1.columnB = 10
ORDER BY tb1.columX DESC
LIMIT 10;
您不能在帶有MySQL JOIN
的UPDATE
使用ORDER BY
。 假設table1(id)
和`table2(id,column1)是唯一的,這應該可以工作:
UPDATE table1 t1 JOIN
(SELECT tt1.*, tt2.column1
FROM table1 tt1 LEFT JOIN
table2 tt2
ON tt1.id = tt2.id AND tt1.column1 = tt2.column1
WHERE tt1.id = X AND tt1.columnB = 10
ORDER BY tt1.columX DESC
LIMIT 10
) tt1
ON tt1.id = t1.id LEFT JOIN
table2 t2
ON t2.id = tt1.id AND t2.column1 = tt1.column1
SET t1.columX = (@position_temp := @position_temp + 1),
t1.columY = 2,
t1.columZ = 3,
t2.columA = 0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.