内连接的作用是:多张表关联查询的时候下,不会查询空的数据,比如说A表是有数据的,B表是没有数据的,这样关联查询并不会查询到信息,因为B表没有构成条件,就会查询不到信息。

那我就要表关联,B表没有数据也可以,A表有就够了,那么就可以使用左外连接。

也又右外连接,但是不常用,一般开发用的是左外连接和内连接。

mysql内连接分两种写法,一种叫隐式内连接,另外一种叫显式内连接。

隐式内连接的写法:

SELECT * FROM A表, B表 WHERE A表.id = B表.id;

显式内连接的写法:

SELECT * FROM A表 INNER JOIN B表 ON A表.id = B表.id WHERE 查询条件;

在实际开发中一般都是使用显式内连接,使用隐式内连接很容易造成笛卡尔积现想,笛卡尔积的写法跟隐式内连接的写法很相似,只要去掉条件查询即可

SELECT * FROM A表, B表;

注意:上面的写法是错误的,mysql是可以执行,但是笛卡尔积的原理是:

假设A表和B表都有4条数据,采用笛卡尔积方式去查询的话就会查询40次数据,假如两张表是40条数据,那么就会查询1600次,如果是400条数据,那么后面可是很可怕的服务器消耗容量了。所以开发中千万不要使用笛卡尔积去开发。

 

左外连接的写法

SELECT * FROM 左表 LEFT OUTER JOIN 右表 ON 表连接条件 WHERE 查询条件;
最后修改于 2021-12-20 05:44:38
上一篇