MySQL 表的内外连接

在上一篇博客中我们在认识笛卡尔积的时候已经接触过连接的,下面我们来进行系统学习连接,连接分为两大类,分别是内连接和外连接。

内连接

内连接的本质就是将两个表进行匹配连接,保留所有在两个表中都存在匹配记录的行,可以进行类比成先对两个表进行求笛卡尔积,在通过连接条件(A.id=B.id)筛选出符合条件的结果。如果某条记录在某个表中找不到对应的记录,它将不会在进行出现在最终的结果中。

select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;

外连接

外连接=内连接+不匹配的也保留一方的数据+空值进行填补

如何进行理解这句话呢?外连接用于返回两个表中匹配成功的行+某一侧未匹配成功的行,未匹配成功的字段用NULL填充。

左外连接

select 字段名  from 表名A left join 表名B on 连接条件

左表为主,返回A与B成功匹配的行A中有而B中没有的行(这部分B的字段为NULL)。

右外连接

以右表为主,返回A与B成功匹配的行A中有而A中没有的行(这部分A的字段为NULL)。

select 字段名  from 表名A right join 表名B on 连接条件

你可能感兴趣的:(MySQL,mysql,数据库)