日期:2014-05-18  浏览次数:20744 次

一个人,只搜出一条信息
学生分数表,和学生信息表,连接后,得出

科目 分数 学生ID 身高
化学 80 001 169
数学 90 001 169

假设这是一个视图(或现在的表),叫学生视图

在这个视图上搜,一个学生只显示一条结果。

在选择哪条的策略上,可以采用,找出任意一条该学生的就行。

化学 80 001 169

也可以采用,找到分数最高的一条。

数学 90 001 169

------解决方案--------------------
SQL code

SELECT * FROM 学生视图 AS T
WHERE (SELECT COUNT(1) FROM 学生视图 AS B WHERE B.学生ID = T.学生ID AND B.分数 > T.分数) < 1

------解决方案--------------------
SQL code
select * from tb t where 分数=(select max(分数) from tb where 学生ID=t.学生ID)

------解决方案--------------------
SQL code

select * from tbl a 
where not exists(select 1 from tbl b where a.学生ID=b.学生Id and a.score<b.score)

------解决方案--------------------
探讨

感谢3位,
有没有另一种策略的,只要是该学生的,不管选哪条都行的查找法