一个学生成绩表:sc(name,sub,score);
5条记录:
name sub score
li 数 59
li 英 60
li 中 61
je 英 80
wu 中 90
写SQL语句,结果为
姓名 数学 英语 中文
li 59 60 61
je NULL 60 NULL
wu NULL NULL 90
感觉用三个自连接,左外连接可以完成,但是
select distinct s1.name, s1.score as 'w', s2.score as 'e',s3.score as 'c',count(s1.score) limit 2
from sc s1 left join sc s2 on(s1.name=s2.name and s1.sub!=s2.sub) left join sc s3 on(s1.name=s3.name and s1.sub!=s3.sub and s3.sub!=s2.sub)
group by s1.name;
这样子会有科目成绩不对,因为默认了第一个表的成绩为数学,纠结纠结
求教
5条记录:
name sub score
li 数 59
li 英 60
li 中 61
je 英 80
wu 中 90
写SQL语句,结果为
姓名 数学 英语 中文
li 59 60 61
je NULL 60 NULL
wu NULL NULL 90
感觉用三个自连接,左外连接可以完成,但是
select distinct s1.name, s1.score as 'w', s2.score as 'e',s3.score as 'c',count(s1.score) limit 2
from sc s1 left join sc s2 on(s1.name=s2.name and s1.sub!=s2.sub) left join sc s3 on(s1.name=s3.name and s1.sub!=s3.sub and s3.sub!=s2.sub)
group by s1.name;
这样子会有科目成绩不对,因为默认了第一个表的成绩为数学,纠结纠结
求教
解决方案 »
- 如何在C#中创建并使用MySql数据库
- jdbc 执行 on duplicate key update 时出错,非空字段需要个缺省值
- 奇怪问题,急求答案
- 着急,主从问题!Slave_IO_Running: No
- 数据库数据类型中,NULL、空格、零、无内容,有什么不同?如果是相同数据类型(char),NULL、空格、零又有什么不同?
- 问下,如何在mysql中查询当天的数据
- 怎么修改下面这个存储过程
- 创建视图时需要对一个表的同一字段引用两次
- linux as4 +php5.2.0+mysql5.0.27 phpinfo未显示mysql信息
- mysql执行计划key_len长度
- mysql启动不了
- 在MySql中怎么将int类型转换为date类型
from sc s1 left join sc s2 on(s1.name=s2.name and s1.sub!=s2.sub) left join sc s3 on(s1.name=s3.name and s1.sub!=s3.sub and s3.sub!=s2.sub)
group by s1.name;
请参考本版版主博客
sum(if(sub='数',score,null)) as `数学`,
sum(if(sub='英',score,null)) as `英语`,
sum(if(sub='中',score,null)) as `中文`
From sc
Group by name
http://blog.csdn.net/redwood_lin/archive/2007/04/03/1550606.aspx