背景:
项目有消息推送,根据消息推送记录,筛选出一共有哪几种消息类型,并且标题和文本是什么
表部分结构如图:
主要是根据subject来去重所有数据,难点是,使用distinct的话,无法显示title和content字段
select DISTINCT subject from messages
如果使用下面的sql,仍然显示所有数据,因为title和content都是有不一样的(比如支付,每个金额和时间都不一样)
select DISTINCT subject, content, title from messages
解决方案:
select type, subject, title, content from messages where id in(select max(id) from messages GROUP BY subject);
其中id是主键id