select min(name) from table
select*fromtablewhereidin(selectmin(id)fromtablegroupbyname)是什么意思??那这样的话我是不是可以理解为他可以完...
select * from table where id in (select min(id) from table group by name)
是什么意思??
那这样的话我是不是可以理解为他可以 完成 DISTINCT一样的效果呢?? 展开
是什么意思??
那这样的话我是不是可以理解为他可以 完成 DISTINCT一样的效果呢?? 展开
2个回答
展开全部
这个sql的意思是:查询出同名中ID最小的记录信息
分析方法:
这个是一个嵌套查询的sql语句,一般都需要从最低层的sql来判断条件,而最外层的sql则是告诉你:查询什么。
比如:上面的sql中,最外层的sql为:select * from table
这样,结果为:查询table表中的记录数,返回的数据结构为table的表结构对应的数据。
而低层的sql为:select min(id) from table group by name
意思是:查询出同名中的id最小的值,举例:
ID name desc
1 name1 name1 id = 1的描述
2 name1 name1 id = 2的描述
3 name2 name2 id = 3的描述
子查询的结果为:1,3
最终的结果为:
ID name desc
1 name1 name1 id = 1的描述
3 name2 name2 id = 3的描述
问题补充:那这样的话我是不是可以理解为他可以 完成 DISTINCT一样的效果呢??
--〉回答:DISTINCT的意思是不一样的,使用DISTINCT的话,根据查询的列进行排重,比如说,你只查询一列:name,那么,查询的结果中就是:
name
name1
name2
但是,如果你查询的是ID,name,使用了DISTINCT的话,则结果为:
ID name
1 name1
2 name1
3 name2
不知楼主理解了没有。
(这种补充的问题在这里头进行回答真是不方便啊,如果有什么不理解的可以单独给我留言)
分析方法:
这个是一个嵌套查询的sql语句,一般都需要从最低层的sql来判断条件,而最外层的sql则是告诉你:查询什么。
比如:上面的sql中,最外层的sql为:select * from table
这样,结果为:查询table表中的记录数,返回的数据结构为table的表结构对应的数据。
而低层的sql为:select min(id) from table group by name
意思是:查询出同名中的id最小的值,举例:
ID name desc
1 name1 name1 id = 1的描述
2 name1 name1 id = 2的描述
3 name2 name2 id = 3的描述
子查询的结果为:1,3
最终的结果为:
ID name desc
1 name1 name1 id = 1的描述
3 name2 name2 id = 3的描述
问题补充:那这样的话我是不是可以理解为他可以 完成 DISTINCT一样的效果呢??
--〉回答:DISTINCT的意思是不一样的,使用DISTINCT的话,根据查询的列进行排重,比如说,你只查询一列:name,那么,查询的结果中就是:
name
name1
name2
但是,如果你查询的是ID,name,使用了DISTINCT的话,则结果为:
ID name
1 name1
2 name1
3 name2
不知楼主理解了没有。
(这种补充的问题在这里头进行回答真是不方便啊,如果有什么不理解的可以单独给我留言)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |