那些年很迷的sql

distinct:

sql: select * from user

这里写图片描述

为了对username去重:

sql: select distinct username from user

这里写图片描述

为了对username去重,并且查询其他字段:

sql: select distinct username, usertype,userpassword from user

这里写图片描述

问题出现了: distinct 之后还要查询其他字段的时候,distinct 不起作用了

sql: select distinct username, usertype,userpassword from user group by username

这里写图片描述

sql: select distinct username, usertype,userpassword from user group by userpassword

这里写图片描述

sql: select distinct username, userpassword from user

这里写图片描述

分析:

group by username之后确实对username去重了,但是group by userpassword之后只去重了username相同并且userpassword相同的记录,如果没有group by 的话distinct将会对username和userpassword全部相同的进行去重

猜想:

可能在存在distinct的查询语句中,如果想查询distinct之外的其他字段,并且结果中不能有这个字段的相同之,就必须group by与distinct相同的字段

猜你喜欢

转载自blog.csdn.net/tuesdayma/article/details/80284595