内连接(Inner Join)又称简单连接或自然连接,是一种常见的连接查询。内连接使用比较运算符对两个表中的数据进行比较,并列出与连接条件匹配的数据行,组合成新的纪录。也就是说在内连接查询中,只有满足条件的记录才能出现在查询结果中。
在内连接查询中,返回的结果只包含符合查询条件和连接条件的数据,然而有时还需要包含没有关联的数据,即返回结果不仅包含符合条件的数据,而且还包含左表(左连接,左外连接)或右表(右连接或右外连接)或两个表(全外连接)中的所有数据,此时就要使用外连接查询。
MySQL中外连接分为左外连接、右外连接;不支持全外连接。
外连接外连接语法格式如下:
select 所查字段 from 表1 left | right [outer] join 表2 on 表1.关系字段=表2.关系字段 where 条件包括左外连接、右外连接和全外连接。
注意使用left join, right join关键字左边的表称为左表,关键字右边的表称作右表。
1.左外连接
以左侧的表为基表,显示基表的所有行、列,外表如果条件不匹配则外表中所有字段显示为null
select * from TestA a left join TestB b on a.id=b.id;
2.右外连接
以右侧的表为基表,显示基表的所有行、列,外表如果条件不匹配则外表中所有字段显示为null
select * from TestA a right join TestB b on a.id=b.id;