select b.studentname,b.studentid,
(select top 1 classname
from class_t A where a.classid=b.classid) classname,
(select sum(score) from test where studentid=b.studentid) score
from student_t B结果是studentname studentid classname score张三 101 一班 477
李四 102 二班 395
王武 103 三班 439
赵六 104 四班 451
陈九 105 五班 448
刘二 106 六班 480
张1 107 一班 440
李3 108 二班 437
王5 109 三班 363
赵6 110 四班 416
陈9 111 五班 433
刘2 112 六班 379
2三 113 一班 433
1四 114 二班 463
3武 115 三班 431
select b.studentname,b.studentid,
(select top 1 classname
from class_t A where a.classid=b.classid) classname,
(select sum(score) from test where studentid=b.studentid) score
from student_t B
where studentid=(select top 1 studentid
from student_t where classid=b.classid)结果是studentname studentid classname score张三 101 一班 477
李四 102 二班 395
王武 103 三班 439
赵六 104 四班 451
陈九 105 五班 448
刘二 106 六班 480
为什么加了
where studentid=(select top 1 studentid
from student_t where classid=b.classid)
以后只有六条结果select studentid
from student_t B where classid=b.classid结果是studentid101
102
103
104
105
106
107
108
109
110
111
112
113
114
115where studentid=(select top 1 studentid from student_t where classid=b.classid)studentid是结果集,那么应该等于15结果啊。
(select top 1 classname
from class_t A where a.classid=b.classid) classname,
(select sum(score) from test where studentid=b.studentid) score
from student_t B结果是studentname studentid classname score张三 101 一班 477
李四 102 二班 395
王武 103 三班 439
赵六 104 四班 451
陈九 105 五班 448
刘二 106 六班 480
张1 107 一班 440
李3 108 二班 437
王5 109 三班 363
赵6 110 四班 416
陈9 111 五班 433
刘2 112 六班 379
2三 113 一班 433
1四 114 二班 463
3武 115 三班 431
select b.studentname,b.studentid,
(select top 1 classname
from class_t A where a.classid=b.classid) classname,
(select sum(score) from test where studentid=b.studentid) score
from student_t B
where studentid=(select top 1 studentid
from student_t where classid=b.classid)结果是studentname studentid classname score张三 101 一班 477
李四 102 二班 395
王武 103 三班 439
赵六 104 四班 451
陈九 105 五班 448
刘二 106 六班 480
为什么加了
where studentid=(select top 1 studentid
from student_t where classid=b.classid)
以后只有六条结果select studentid
from student_t B where classid=b.classid结果是studentid101
102
103
104
105
106
107
108
109
110
111
112
113
114
115where studentid=(select top 1 studentid from student_t where classid=b.classid)studentid是结果集,那么应该等于15结果啊。
http://topic.csdn.net/u/20100824/16/9d4b7bc7-0b83-4ea5-a891-e1d32cbf53a2.html?seed=1442714353&r=67908751#r_67908751
from student_t B where classid=b.classid 这样的语句?可以是可以,但是没人会这样写的。
李四 102 二班 395
王武 103 三班 439
赵六 104 四班 451
陈九 105 五班 448
刘二 106 六班 480
张1 107 一班 440
李3 108 二班 437
王5 109 三班 363
赵6 110 四班 416
陈9 111 五班 433
刘2 112 六班 379
2三 113 一班 433
1四 114 二班 463
3武 115 三班 431这里有六个班你的句子select b.studentname,b.studentid,
(select top 1 classname
from class_t A where a.classid=b.classid) classname,
(select sum(score) from test where studentid=b.studentid) score
from student_t B
where studentid=(select top 1 studentid
from student_t where classid=b.classid)
就是查每个班的第一个学生,也就是六条数据。张三 101 一班 477
李四 102 二班 395
王武 103 三班 439
赵六 104 四班 451
陈九 105 五班 448
刘二 106 六班 480