数据库中涉及两个表之间的数据查询通常使用连接的方法实现。
连接分为内连接和外连接和交叉连接,外连接又分为左连接和右连接。
今天就让我们来分析一下这四种连接的区别:
内连接(inner join):
左连接(left join)
右连接(right Join)
交叉连接(cross join)
具体的区别让我用俩张表举例:
内连接: 也叫等值连接,只返回俩个表中连接字段相等的行
即——连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
现在我们将表1 和表2 实现内连接:
Select * from 表1 INNER JOIN 表2 ON 表1.id=表2.id
结果如下:
左连接:
以左表的全部为基准,返回左表中所有和右表中联结字段相等的记录以及右表中没有匹配的字段部分返回NULL
Select * from 表1 LEFT JOIN 表2 ON 表1.id=表2.id :
结果如下:
右连接和左连接的意思相同,唯一区别就是以右表的全部为基准
Select * from 表1 RIGHT JOIN 表2 ON 表1.id=表2.id
结果如下
交叉连接:
返回俩张表的笛卡尔乘积:
Select * from 表1 CROSS JOIN 表2
结果如下