JOIN

数据库常见的join方式有三种:inner join, left outter join, right outter join(还有
一种full join,因不常用,本文不讨论)。这三种连接方式都是将两个以上的表通过on条件
语句,拼成一个大表。以下是它们的共同点: 1. 关于左右表的概念。左表指的是在SQL语句
中排在left join左边的表,右表指的是排在left join右边的表。 2. 在拼成的大表中,左
表排在左边,右表排在右边。 3. on条件语句最好用=号对两表相应的主外键进行连接。当然
,也可以用其他操作符,如>, <, 来连接两表的任一字段,此时的关系将非常复杂,连接后
的记录数也随之而变得不确定。如果在一些特殊的场合中需要用到这种方式,必须通过简单
的实例加以确认,否则,连接结果很可能不是我们所想要的! 4. on条件语句不能省略。 5
. 可以连锁使用join,每次使用join都令另一表与当前的表或连接的结果相连接。
给个通俗的解释吧.
例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
两个表a,b相连接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
此时的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符
同样的也有right join
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4

原文地址:https://www.cnblogs.com/spiritofcloud/p/3980415.html