我的MySQL查询如下:
select * from messages
where id in (select max(id) from messages group by Name)
为什么此查询不起作用?:
select * from messages
where id in (select max(id) from messages where field <> 'value' group by Name)
答案 0 :(得分:0)
通过“不工作”来了解您的意思会很有帮助 - 例如,您是否收到错误或是否会产生意外结果。但是,根据您的评论,并假设您按每个用户的最大ID定义“最后项目销售额”,我建议JOIN
将您的表格添加到选择每个用户的最大ID的子查询中。例如,给定评论中提到的样本销售数据集,您可以编写如下查询:
select s.*
from sales s
join (
select user_name, max(id) as max_id
from sales
where sale_item <> 'Ship'
group by user_name
) q
on q.user_name = s.user_name
and q.max_id = s.id
我创建了一个SQL Fiddle来演示查询的输出。