Mysql有很多种连接方式,其中有两大主要连接方式:内连接和外连接,其中外连接又可以分为左外连接和右外连接;
对于这三种连接方式,如何判断何时使用一直困扰着我,这里就做一下自己的总结:
1、内连接:INNER JOIN,通常用来连接两个表中都存在的列值,在数学上可以理解为两个数的交集,即共同拥有的部分;
例如:student(id,name,age,sex,score),teacher(id,name,age,sex,salary)
测试语句:
SELECT * FROM student s INNER JOIN teacher t ;
测试结果:
2、外连接:
左连接:LEFT JOIN,会将语句左边的表中的所有记录全部表示出来,而右表只会显示符合搜索条件的记录,如果左表的记录右表不存在,则以NULL来填充;
例如:student(id,name,age,sex,score),teacher(id,name,age,sex,salary)
测试语句:SELECT * FROM student s LEFT JOIN teacher t on s.id = t.id
测试结果:
右连接:RIGHT JOIN,会将语句右边的表中的所有记录全部表示出来,而左表只会显示符合搜索条件的记录,如果右表的记录左表不存在,则以NULL来填充;
例如:student(id,name,age,sex,score),teacher(id,name,age,sex,salary)
测试语句:SELECT * FROM student s RIght JOIN teacher t on s.id = t.id
测试结果:
由此可见,内连接的区别相当于数学中的交集,外连接的左右区分为:左连接为左全查右,右连接为右全查左!