在mysql中,group by 语句可以省略聚合函数
假设有一个表 info
身份证 | 姓名 |
---|---|
idcard1 | name1 |
idcard2 | name2 |
idcard3 | name1 |
使用如下sql进行查询
select 身份证,姓名 from info group by 姓名;
按照常理讲,我们会认为这条语句会出错,因为当两个相同的姓名合并成一条记录的时候,我们需要告诉数据库如果身份证不同的时候应该显示谁。
但是这条语句居然正常工作,结果是冲突身份证号中的一个。
具体解释可以参考stackoverflow的回答。
这种机制的好处包括
- 很多时候我们知道两个表是一对一关联的时候,join操作以后就可以通过group by来简单对某些字段去重。
- 有