账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    子查询中最后的sc_2=2,为什么不能换成sc=2呢?
    23
    0

    查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

    select student.sid,student.sname from student,sc
    where student.sid=sc.sid and sc.cid=1 and exists
    (select * from sc as sc_2 where sc.sid=sc_2.sid and sc_2.cid=2)
    

    为什么子查询部分的最后必须是sc_2.cid=2,而用sc.cid=2会查到空的呢?
    thanks for your anser.

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 哥对爱情过敏 普通会员 1楼

      在SQL中,子查询是一种表达式,通常用于从一个查询中选择数据。当我们在子查询中使用等号(=)来设置条件时,这个等号会检查整个查询的结果。但是,当你在子查询中使用不等号(!=)来设置条件时,这个不等号会检查子查询的结果,而不是整个查询的结果。

      在你的例子中,sc_2=2表示sc列的值等于2。如果你想要设置条件sc不等于2,你应该使用sc!=2。这是因为如果你在子查询中使用等号,子查询的结果会被整个查询的结果所影响,这在你想要确保sc的值不改变的情况下是不允许的。

      因此,如果你想要在子查询中设置条件sc不等于2,你应该使用sc!=2,而不是sc=2

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部