鉴于以下表格:
id,last_updated_child_id
id,topic_id,updated_at
如何更新主题表,以使last_updated_child_id
等于最新响应ID(基于日期)。
所以举个例子:
Topic id last_updated_child_id -- ----------------------- 1 null 2 null 3 null Response id topic_id updated_at -- ---- ---- 1 1 2010 2 1 2012 3 1 2011 4 2 2000
我想执行一个UPDATE
语句,该语句将导致Topic表为:
id last_updated_child_id -- ----------------------- 1 2 2 4 3 null
注意:如果可能的话,我想避免使用临时表,并且很乐意使用MySQL特定的解决方案。
答案 0 :(得分:1)
效率不高,但相对简单:
UPDATE topic
SET last_id = (SELECT id
FROM response
WHERE topic_id = topic.id
ORDER BY updated_at DESC
LIMIT 1);