面试官mysql的架构体系是什么 (面试官提问程序员)

编程、后端开发、面试的程序员、数据库、计算机软件、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)

面试官问sql的掌握程度怎么回答,面试官问sql最多连几张表合适

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

面试官问sql的掌握程度怎么回答,面试官问sql最多连几张表合适

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

这是左连接left join on

查出12条数据

面试官问sql的掌握程度怎么回答,面试官问sql最多连几张表合适

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

这是左连接left join on

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

面试官问sql的掌握程度怎么回答,面试官问sql最多连几张表合适

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

面试官问sql的掌握程度怎么回答,面试官问sql最多连几张表合适

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

场景3:内连接on

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

查出12条数据

面试官问sql的掌握程度怎么回答,面试官问sql最多连几张表合适

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