免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4404 | 回复: 14
打印 上一主题 下一主题

求一个简单的mysql语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-30 14:32 |只看该作者 |倒序浏览
5可用积分
我对mysql不是很熟悉,大概的需求如下:

有多行数据。类似下面的表:

id                 class                     name
1                    2                         a
2                    3                         b
3                    2                         c
4                    2                         d

其中id为1,3,4的class是相同的,取这个表的所有数据时class相同时只取ID最小的,也就是说查询这个表时最后取出来的数据为id为1和2的,id为3和4的忽略。请问这个sql怎么写,谢谢了!

[ 本帖最后由 tomorrow819 于 2009-9-30 14:43 编辑 ]

最佳答案

查看完整内容

select * from test where id in (select id from (select class,min(id) id from test group by class)b);

论坛徽章:
0
2 [报告]
发表于 2009-09-30 14:32 |只看该作者
select * from test where id in (select id from (select class,min(id) id from test group by class)b);

论坛徽章:
0
3 [报告]
发表于 2009-09-30 14:55 |只看该作者
谢谢,可是有语法错误

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
4 [报告]
发表于 2009-09-30 14:59 |只看该作者
select min(id),class,name from table_name group by class;

论坛徽章:
0
5 [报告]
发表于 2009-09-30 15:05 |只看该作者
原帖由 cenalulu 于 2009-9-30 14:59 发表
select min(id),class,name from table_name group by class;


我有很多列,30多列吧,要取出所有的列,并且某些列名可能会变的,要用select *, 您给的例子是取出固定的列。

论坛徽章:
0
6 [报告]
发表于 2009-09-30 15:13 |只看该作者
呵呵,综合了楼上两家的,用下面的sql搞定:
select * from table_name where id in (select min(id) from table_name group by class)

论坛徽章:
0
7 [报告]
发表于 2009-09-30 15:13 |只看该作者
我不知道把分给谁好啊,好像不能一人给一点哦

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
8 [报告]
发表于 2009-09-30 15:15 |只看该作者
原帖由 tomorrow819 于 2009-9-30 15:05 发表


我有很多列,30多列吧,要取出所有的列,并且某些列名可能会变的,要用select *, 您给的例子是取出固定的列。


一开始干吗不说。。。

你的id是主键吧?
select * from table_name tn join (select min(id) as mid from table_name group by class) tn2 on tn.id=tn2.mid;

论坛徽章:
0
9 [报告]
发表于 2009-09-30 15:31 |只看该作者
分应该给:
cenalulu  

论坛徽章:
0
10 [报告]
发表于 2009-09-30 15:47 |只看该作者
如何退分?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP