关于sql的join语法 ,有很多种用法,如left,inner等等
假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同。
1. INNER JOIN
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name
Inner join 产生的结果集中,是A和B的交集。
2. FULL [OUTER] JOIN
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
Full outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。
可以使用IFNULL判断。
如SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
WHERE TableA.id IS null OR TableB.id IS null:可以查询出A与B的并集去掉A与B的交集的结果集
3. LEFT [OUTER] JOIN
Left outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableB.id IS null
产生在A表中有而在B表中没有的集合。
http://blog.csdn.net/xuanjiewu/article/details/50636465