
MySQL 中查询某字段去重后的所有记录
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本教程介绍如何在MySQL数据库中使用SQL语句查询某个字段去除重复值后所有的唯一记录。
假设现在有如下N条记录:表名为book,包含字段id、author和title。数据内容为:
1. id=1, author=aaa, title=AAA
2. id=2, author=bbb, title=BBB
3. id=3, author=ccc, title=CCC
4. id=4, author=ddd, title=DDD
5. id=5, author=eee, title=AAA
现在想从这5条记录中查询所有title不重复的记录。如果使用`select distinct title,author from book`这样的语句是不可以的,因为distinct只能作用于一个字段。
正确的写法如下:
```sql
SELECT a.* FROM book a
RIGHT JOIN (
SELECT MAX(id) AS id FROM book GROUP BY title
) b ON b.id = a.id
WHERE b.id IS NOT NULL;
```
这段SQL语句通过子查询找出每个title的最大id,然后与原表进行连接操作,从而获取到去重后的结果。
全部评论 (0)
还没有任何评论哟~


