InfoQ

交流

讨论:这种情况一条select语句能够完成吗?

作者 ll1618 发布于 0000-00-00 分类:php基础编程

假如一个数据库中grade表是全年级的学生,name列是学生姓名,class列区分班级,result列表示成绩。

期终考试后,全年级第一名是1班的,2、3名是二班的,4名是一班的,5名是三班的,用一条select语句能否选出各个班的第一名,在本例中,应select出1、2、5。

这条语句应如何编写?



逛论坛交流这种情况一条select语句能够完成吗?

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

9 条回复

回复

select class,name,result from grade .. 发表人 Ken.Chou 发表于 12月01日
ok!3qs 发表人 ll1618 发表于 12月01日
QUOTE: 最初由 Ken.Chou 发布 .. 发表人 Eks 发表于 12月01日
sorry,改成这样吧 select class,name.. 发表人 Ken.Chou 发表于 12月01日
QUOTE: 最初由 Ken.Chou 发布 .. 发表人 Eks 发表于 12月01日
QUOTE: 最初由 Eks 发布 [B].. 发表人 ll1618 发表于 12月01日
失败啊,而且 select class,name,resul.. 发表人 Ken.Chou 发表于 12月01日
  1. select class,name,result from grade group by class

  2. ok!3qs


  3. QUOTE:
    最初由 Ken.Chou 发布
    [B]select class,name,max(result) from grade group by class [/B]

    这样是不正确的
    查询出的 max(result) 确实是第一名的成绩,而 name 却未必是第一名的 name~

  4. sorry,改成这样吧
    select class,name,result from grade group by class


  5. QUOTE:
    最初由 Ken.Chou 发布
    [B]sorry,改成这样吧
    select class,name,result from grade group by class [/B]

    这样就连第一名的成绩也查询不出来了


  6. QUOTE:
    最初由 Eks 发布
    [B]这样就连第一名的成绩也查询不出来了 [/B]

    那应该怎么写呢

  7. 如果数据库支持子查询,SQL可以这样写:

    SELECT * FROM grade as g1 WHERE result=(SELECT MAX(g2.result) FROM grade as g2 WHERE g1.class = g2.class)

    如果是用MySQL的话,一个查询几乎是不可能的~ 至少我现在想不到。。。。

  8. 失败啊,而且 select class,name,result from grade group by class 这种语句居然每个分类只显示一条记录,并且好像是按照存储顺序显示的

  9. 那看来数据库结构不能这样设计了,但如果以各个班来设计的话,好象在汇总时又有其他方面的问题




  10. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

如何在Solaris8&9下配置Apace+PHP+...

校园网的需要,兄弟们帮帮我。

问个问题!

VBB论坛,怎么在HTML网页中引用最新文章呢?

今天到广州选看理发店的地址,有介绍的...

今天到广州选看理发店的地址,有介绍的请进。 看看有没有合适的...

老大进来有个问题啊!

村里有人不能进来了,是不是数据库出问题了。 还是她被封了啊。...

php 打开应用程序

用exec()函数打开外部应用程序,怎么写代码? 须配置PHP.INI吗...

大家看这是什么字体?

如题

Santana Feat. Branch! Game of Love

很好听

各位大侠帮忙啊

http://bbs.phpres.com/showthread.php?s=&threadid=34746

Redhat安装、使用及服务器应用FAQ

1.安装时把grub(lilo)写到linux分区的引导区还是主引导扇区(MBR)...

$_cookie[]的问题

$_COOKIE[ ] 我用$_COOKIE["uname"] = "小牛"; 但是为...

[]