Giải pháp là lồng ORDER BY và LIMIT trong mệnh đề FROM như một phần của phép nối. Điều này cho phép bạn tìm hàng chính xác sẽ được cập nhật (ta.id) trước, sau đó xác nhận cập nhật.
UPDATE tableA AS target
INNER JOIN (
SELECT ta.id
FROM tableA AS ta
INNER JOIN tableB AS tb ON tb.id = ta.user_id
WHERE tb.username = '$varName'
ORDER BY ta.datetime DESC
LIMIT 1) AS source ON source.id = target.id
SET col1 = '$var';
Lời khuyên dành cho Nam tước Schwartz, còn gọi là Xaprb, vì bài đăng xuất sắc về chủ đề chính xác này: http://www.xaprb.com/blog/2006/08/10/how-to-use- order-by-and-limit-on-multi-table-Updates-in-mysql /