Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更新左联接获取第二个表中最后插入的记录_Mysql_Left Join - Fatal编程技术网

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的最后一条记录