打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sql Exists 2个题目

第一题:

如下面的表table:

Id  Name  Class Count  Date

 1   苹果    水果    10     2011-7-1

 1   桔子    水果    20     2011-7-2

 1   香蕉    水果    15     2011-7-3

 2   白菜    蔬菜    12     2011-7-1

 2   青菜    蔬菜    19     2011-7-2

如果想要得到下面的结果:(Id唯一,Date选最近的一次)

1   香蕉    水果    15     2011-7-3

2   青菜    蔬菜    19     2011-7-2


分析:

同一类水果或蔬菜,找出日期最新的那一条记录。采用正向思维无法解决问题,如用max找出日期最大的,但是只得到了日期,却没有得到记录。只能使用 双重否定 即为肯定 这种思路。

正确思路为:要找这么一条记录,他的日期不比 同类任何一条小。sql 应为 Select * from table t1 Where Exists(Select 1 from table t2 where t1.Class=t2.Class And t1.Date<t2.Date)

----------------------------

第二题

有三张表 学生表 Student(Sno,Sname) 课程表Course(Cno,Cname) 选课表SC(Sno,Cno)

要求找出:选修了全部课程的学生名称

分析:

这道题 也比较适用于双重否定。即找出 没有 任何一门课程没选的 学生,选课表中有学生的选课信息,课程表中有所有课程的信息,三个表关联。

思路为:找出这么一种学生,没有任一门课程没选。sql为

Select * from Student s Where not Exists(

    Select 1 from Course c Where  not Exists(

        Select 1 from SC  Where Sno=s.Sno And Cno=c.Cno

    )

)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
专题:SQL之EXISTS 供应商和学生考试 的解说为例
chp3-2
sql面试题
SQL语句大全实例
5-2
SQL数据定义语言(DDL)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服