Решението е да вложите ORDER BY и LIMIT в клауза FROM като част от присъединяване. Това ви позволява да намерите първо точния ред, който трябва да бъде актуализиран (ta.id), след това да извършите актуализацията.
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';
Съвет към барон Шварц, известен още като Xaprb, за отличната публикация точно по тази тема:http://www.xaprb.com/blog/2006/08/10/how-to-use- поръчка-по-и-ограничение-на-много-таблици-актуализации-в-mysql/