3.回答有关“至少”的问题
前言:“至多”的对立面是“至少”。通常,采用“至多”问题中表述的技巧变体,就可以解决“至少”问题。当解决“至少”问题时,把他们换成“没有更少的”说法会更好理解。
问题(6):找到至少选择两门课程的学生。
stcb.cid
 )
问题(7):找到同时选取sqlserver和mysql课程的学生。
)
问题(8):找到至少比两个学生大的学生。
sd2.age
4.回答有关“准确”的问题
问题(9):找到只教一门课程的教授。
ptc2.Cid
)
问题(10):找到只选择sqlserver和mysql的学生(只选取了这两门课程,没有选择其他课程)
stcd.Cid
)
问题(11):找到只比两个学生大的学生(也就是找到第三年轻的学生)
sd7.age
)

5:回答有关“一些”或“所有”的问题
问题(12):找到选取所有课程的学生。

select sd.Tid,sd.Name,sd.Age from Student sd,StudentTakeCourses stc
where sd.Tid=stc.Sid
group by sd.Tid,sd.Name,sd.Age 
having count(stc.Cid)=(select count(*from course) --根据课程数排除课程没有都选的学生

问题(13):找到比其他所有学生都大的学生。(找到年龄最大的学生)

--使用max聚集函数
select * from Student where Age=(select max(Age) from Student)

还有一种比较常见的方式:

--常见方式
select * from Student where Age>=all (select Age from Student)

最后通过自连接也可以查询到结果,不过没有上面两种看起来直接了当:

--自连接方式
select * from Student 
where Age not in 
(
select sd1.Age from Student sd1,student sd2
where sd1.Age<sd2.Age
)

<完>

相关文章:

  • 2022-12-23
  • 2021-11-26
  • 2021-11-12
  • 2021-12-25
  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-06
  • 2022-02-04
  • 2021-12-16
  • 2022-02-08
  • 2021-05-28
  • 2022-12-23
相关资源
相似解决方案