mysql 二次查询讲解_使用mysql进行二次查找

第一阶段的课程已经结束了,技术是学到了一些,但是大家学的都一样,这些技术是都知道的,而且有不少同学比我学的好啊,感觉也没什么好分享的。

我学完mysql的时候,一个比我早出来工作的朋友问我一个小问题,就是如何查找成绩都及格的人的人数。我当时就跟他说” SELECT * FROM 你的表 WHERE 第一科成绩>=60 AND 第二科成绩>=60;就这样”。然后他说不对,科目是未知的。然后我就按照他的意思试着建了一个新的表格,这就是当时用的表格,表名test:

b5b0b1954d7b1b86a4242bbd9d0c05eb.gif

1.png (12.82 KB, 下载次数: 0)

2017-12-4 16:46 上传

然后用” SELECT * FROM test WHERE score>60;”查找出及格的成绩的人的信息。

b5b0b1954d7b1b86a4242bbd9d0c05eb.gif

2.png (7.23 KB, 下载次数: 0)

2017-12-4 16:46 上传

感觉不能进行操作了。那我就反着查找用” SELECT * FROM testWHERE score<60;”查出成绩不及格的人的信息。

b5b0b1954d7b1b86a4242bbd9d0c05eb.gif

3.png (7.55 KB, 下载次数: 0)

2017-12-4 16:46 上传

感觉还是没法操作。突然发现,查找出来的数据都是表格,那我是不是能对查找出来的数据进行二次查找?我试着使用”SELECT NAME FROM(SELECT NAME FROM test WHERE score>60;)WHERENAME NOT IN (SELECT NAME FROM test WHERE score<60;);”然后就报错了,大概意思就是我这个语句有问题。我发现我根本不用在成绩及格的人里面查找不及格的人。然后我就换成了”SELECT NAME FROM test WHERE NAME NOT IN (SELECT NAME FROM testWHERE score<60;);”然后还是报错了,说我右括号有问题。

b5b0b1954d7b1b86a4242bbd9d0c05eb.gif

4.png (28.01 KB, 下载次数: 0)

2017-12-4 16:47 上传

这个不用括号明显不对吧,我就试着去掉一个分号” SELECT NAME FROMtest WHERE NAME NOT IN(SELECT NAME FROM test WHERE score<60);”结果还真能用:

b5b0b1954d7b1b86a4242bbd9d0c05eb.gif

5.png (4.78 KB, 下载次数: 0)

2017-12-4 16:47 上传

虽然查到的名字重复了,不过还是做出来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值