mysql查询order by datetime和group by id问题

piwo6bdm  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(391)

对此查询有问题
comments表中有3行具有不同的日期时间,我希望客户列表具有上次注解的创建日期/更新日期。但没有得到最后一个评论的客户与集团客户

SELECT * FROM(
SELECT MAX(comments.`date_updated`), customer.id AS vid, comments.`date_updated` AS dts, comments.`id` AS comments_id, comments.* FROM customer
INNER JOIN comments ON comments.`customer_id` = customer.`id`
 WHERE customer.`id` IN ('')
) AS v
GROUP BY v.`vid` LIMIT 0,50
34gzjxbg

34gzjxbg1#

您可以使用一个自连接来为每个具有最新注解的客户筛选注解表和行 date_updated ```
SELECT c.id AS vid, co.date_updated AS dts, co.id AS comments_id, co.*
FROM customer c
INNER JOIN comments co ON co.customer_id = c.id
LEFT JOIN comments co1 ON co.customer_id = co1.customer_id AND co.date_updated < co1.date_updated
WHERE co1.customer_id IS NULL AND c.id IN ('')

或内部连接

SELECT c.id AS vid, co.date_updated AS dts, co.id AS comments_id, co.*
FROM customer c
INNER JOIN comments co ON co.customer_id = c.id
INNER JOIN (
SELECT customer_id, MAX(date_updated) date_updated
FROM comments
GROUP BY customer_id
) co1 ON co.customer_id = co1.customer_id AND co.date_updated = co1.date_updated
WHERE c.id IN ('')

f45qwnt8

f45qwnt82#

你忘了按条款订货

SELECT * FROM(
SELECT MAX(comments.`date_updated`), customer.id AS vid, comments.`date_updated` AS dts, comments.`id` AS comments_id, comments.* FROM customer
INNER JOIN comments ON comments.`customer_id` = customer.`id`
 WHERE customer.`id` IN ('')
) AS v
GROUP BY v.`vid` LIMIT 0,50
ORDER BY created_date desc;

相关问题