四时宝库

程序员的知识宝库

面试官:MySQL的where和on条件的区别 程序员:摸摸头表示不懂

编程、后端开发、面试的程序员、数据库、计算机软件、MySQL

MySQL

在实际开发中SQL经常写join-on-where这样的业务SQL

开发需求忙起来,有时候也错把条件放错位置

到底是在on 后面,还是where后面了

下面我们来复习总结下

口诀

先执行on,后执行where

ON是建立关联关系,where是对关联关系的筛选。

总结

先总结,后面我们上例子分析加强下理解

  1. 当条件放在ON后面时,无论ON条件真假,都会返回左表的数据;
  2. 当条件放在where后面,只有满足条件的数据才会返回。

数据准备

MYSQL版本 5.7.17-log

2张表(学生表student;成绩表score)

score成绩表的SID和学生表的SID关联

场景1:where后面条件(左连接)

这是左连接left join on

查出12条数据

场景2:on后面条件(左连接)

这是左连接left join on

这里查出来是20条数据,注意成绩是null(低于60分的也变成了null)的也查询出来

如果不加条件 b.score>60,下面数据会查询出来的

很明显,条件放where后面才是我们想要的结果

场景3:内连接on

如果改为内连接,用on条件查询出来的效果和场景1一样

查出12条数据


编程、后端开发、面试的程序员、数据库、计算机软件、MySQL

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接