【发布时间】:2014-03-26 06:36:29
【问题描述】:
我正在使用这个 mysql 查询
SELECT `p`.`id` AS product_id, `p`.`title` , `i`.`image` , `u`.`user_username` , `m`.`id` AS message_id, `m`.`date` , `m`.`from` , `m`.`to` , `m`.`message` , `m`.`read`
FROM (`messages` AS m)
JOIN `products` AS p ON `m`.`product_id` = `p`.`id`
JOIN `users` AS u ON `m`.`from` = `u`.`user_id`
JOIN `product_images` AS i ON `p`.`id` = `i`.`product_id`
WHERE `i`.`type` = 'FRONT'
AND (m.to = '1171' OR m.from = '1171)
GROUP BY `m`.`therad_user` , `m`.`product_id`
ORDER BY `m`.`id` DESC
在消息表中,它显示具有最旧消息 id 的消息,我想返回最新消息。但它显示最旧的消息。我如何解决这个问题。
【问题讨论】:
-
每组最大的 n 没有帮助?
-
是的,我搜索它有子查询解决方案,但子查询解决方案是针对不同的表而不是主表
-
所以,现在只关注“不同”表。
-
我使用另一个查询来解决这个问题,以获取最后一条消息表单线程并从数组中的第一条消息替换
-
是的,但我不会停止思考这个问题。
标签: php mysql sql join greatest-n-per-group