SQL语句的内连接,外连接,左连接,右连接,全连接详解例子
1、关系:链接分为内连接,外连接;外连接又分为左连接、右连接和全连接
分别为
内连接:(Inner Join):参与表格以JOIN关键词连在一起, ON指定联结的条件
左连接(Left Outer Join):含有在左表格但无法在右表格里找到对应的资料列
右连接(Right Outer Join):含有在右表格但无法在左表格里找到对应的资料列
全连接(Full Outer Join):含有以上两种情况的资料列
注意::left outer join 与 left join 等价, 一般写成left join
right outer join 与 right join等价,一般写成right join
2、具体实现例子
aa_test 表
aa_interest表
2.1 内连接(inner join)
内连接也称为等值连接,返回两张表都满足条件的部分。也就是满足where条件的值。
SELECT a.id,a.name,a.sex,a.phone,b.dance,b.base,b.foot
FROM aa_test AS a
INNER JOIN aa_interest as b
on a.interest_id = b.id
2.2 外连接:左连接、右连接、全连接
左连接
结果中包含位于关键字LEFT OUTER JOIN左侧的表中的所有行,以及该关键字右侧的表中满足条件的行。。
SELECT a.id,a.name,a.sex,a.phone,b.dance,b.base,b.foot
FROM aa_test AS a
LEFT OUTER JOIN aa_interest as b
on a.interest_id = b.id
右连接
结果集中包含位于关键字RIGHT OUTER JOIN右侧的表中的所有行,以及该关键字左侧的表中满足条件的行。
SELECT a.id,a.name,a.sex,a.phone,b.dance,b.base,b.foot
FROM aa_test AS a
RIGHT OUTER JOIN aa_interest as b
on a.interest_id = b.id
全连接
结果中包含两个表中的所有行。
同理:
SELECT a.id,a.name,a.sex,a.phone,b.dance,b.base,b.foot
FROM aa_test AS a
FULL OUTER JOIN aa_interest as b
on a.interest_id = b.id
反思:从执行结果上来看,两张表 连接 相当于 两张表中的字段交叉连接,
join语句相当于对两张表做了乘法运算,把aa_test 表中的每一行记录按照顺序和aa_interest表中记录依次匹配
附:再看一下sql中主要关键字的执行顺序:
rom
on
join
where
group by
having
select
distinct
union
order by
更多推荐
SQL语句的内连接,外连接,左连接,右连接,全连接详解例子
发布评论