SQL 中的 Join 有以下几种类型:
1、Cross Join
交叉连接,没有条件筛选,返回笛卡尔积。
如果以 ,(逗号)分隔表名进行查询如 select * from tbl_name1, tbl_name2 一样返回笛卡尔积。
2、Inner Join
内连接,必须加 on clause,否则和 cross join 相同(MySQL中是这样的, 标准 SQL 还是不同,应该极力避免这种没有条件的笛卡尔积)。
3、Left (Outer) Join
左外连接
4、Right (Outer) Join
右外连接
5、Full (Outer) Join
MySQL 不支持全外连接,可以通过左外连接和右外连接实现。
下图( http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins )从视图上介绍了 7 种不同类型的 JOIN 操作:
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- OUTER JOIN
- LEFT JOIN EXCLUDING INNER JOIN
- RIGHT JOIN EXCLUDING INNER JOIN
- OUTER JOIN EXCLUDING INNER JOIN