Mysql 更新左联接获取第二个表中最后插入的记录
我的问题是Mysql 更新左联接获取第二个表中最后插入的记录,mysql,left-join,Mysql,Left Join,我的问题是 UPDATE xxx_tickets LEFT JOIN xxx_ticket_comments ON xxx_tickets.ID = xxx_ticket_comments.ticket_id SET xxx_tickets.status = 'open' WHERE xxx_ticket_comments.private = '1' AND xxx_tickets.org_code = '9' AND xxx_tickets.ID = '2' ORDER BY xxx_tick
UPDATE xxx_tickets
LEFT JOIN xxx_ticket_comments
ON xxx_tickets.ID = xxx_ticket_comments.ticket_id
SET xxx_tickets.status = 'open'
WHERE xxx_ticket_comments.private = '1'
AND xxx_tickets.org_code = '9'
AND xxx_tickets.ID = '2'
ORDER BY xxx_ticket_comments.ID DESC LIMIT 1
我遇到的问题是,第二个表xxx\u ticket\u comments
有多条与ticket\u id
相关的记录。我需要的是加入该表,以便在xxx\u ticket\u comments
ORDER BY在我的声明中不起作用,但我留下它是为了让您了解我正在努力实现的目标
简而言之,我需要根据xxx\u票证注释中的最新记录更新xxx\u票证
希望它有意义。您可以将条件移动到WHERE
子句
UPDATE xxx_tickets t LEFT JOIN
xxx_ticket_comments tc
ON t.ID = tc.ticket_id AND
tc.private = 1
SET t.status = 'open'
WHERE t.org_code = 9 AND t.ID = 2 AND
tc.ID = (SELECT MAX(tc2.ID)
FROM xxx_ticket_comments tc2
WHERE tc2.ticket_id = tc.ticket_id AND
tc2.private = 1
);
遗憾的是,JOIN
最后一条记录不支持按
排序和限制关于什么?您需要给我们一个列/顺序来确定“最后”记录。这就是为什么我离开xxx的ORDER\u ticket\u comments.ID DESC LIMIT 1
向您展示订单。comments表有多条记录,我只需要基于列ID
DESC的最后一条记录