结果是一样的

结果是一样的

select * from stu where score= all(select score from level);

select * from stu where score= any(select score from level);

结果是一样的,是不是= 和 !=写哪个关键字都是一样的

2、<>这个运算符是什么意思

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,当level表中有一条数据,而且stu表中有该score成绩时,就会查出来。

level表中只保留一条数据,如下:

http://img1.sycdn.imooc.com//climg/5ed7625309aa449b02450141.jpg

SQL语句执行如下:

http://img1.sycdn.imooc.com//climg/5ed762380954e46a04980127.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 小老哥丶 提问者 #1
    只有在level中只有一条数据的时候才能查出来吗
    2020-06-03 17:21:00
  • 好帮手慕阿慧 回复 提问者 小老哥丶 #2
    同学你好,是的。祝学习愉快~
    2020-06-03 17:35:19
好帮手慕阿慧 2020-06-03 15:02:40

同学你好,例如,

stu表中数据如下:

http://img1.sycdn.imooc.com//climg/5ed749d609f6550202670348.jpg

level表中数据如下:

http://img1.sycdn.imooc.com//climg/5ed749e209576b7802210189.jpg

SQL语句执行如下:

http://img1.sycdn.imooc.com//climg/5ed74a8009bcd6a104990126.jpg

http://img1.sycdn.imooc.com//climg/5ed74a8609d5a6da04860136.jpg

any代表任何一个,all代表全部。如果同学不明白,请说明一下哪里不明白。

祝学习愉快~

  • 提问者 小老哥丶 #1
    那select * from stu where score= all(select score from level);什么情况才能查出数据呢
    2020-06-03 15:59:59
好帮手慕阿慧 2020-06-03 09:35:23

同学你好,

1、2个sql语句返回的结果一样,并不代表=all和=any是一样的,这2个sql语句的含义和查询条件是不同的。

2、第一条sql语句使用=all,表示查询stu表中的score列的值全部都在select score from level子查询查询到的score中。

如果子查询查询到的score有70,80,则stu表中的score列的值要同时等于70,80,才能将其查询出来。

3、第二条sql语句使用=any,表示stu表中的score列的值只要在select score from level子查询查询到的score中,就将其查询出来。

如果子查询查询到的score有70,80,则stu表中的score列的值只要等于70,80其中一个,就会将其查询出来。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 小老哥丶 #1
    抱歉老师,我看不出2,3有什么区别
    2020-06-03 12:20:09
好帮手慕阿慧 2020-06-02 14:11:23

同学你好,

1、=和!=是不一样的。=是等于,!=是不等于。

2、运算符<>是不等于,等同于!=

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 小老哥丶 #1
    我的意思是: 在老师的参照表里面 =号那一栏不是没有all所代表的意思吗 但是我写=all还是和=any一样的返回结果 是不是=号和!=号用哪个关键字都是一样的
    2020-06-02 23:49:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师