图解
JOIN 内连接
JOIN 默认就是 INNER JOIN 的简写,从数学的角度讲就是求两个表的交集,从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录。
FULL JOIN
MySQL 中没有 FULL JOIN,就是两表相连,可以使用 UNION 来代替
OUTER JOIN
-
LEFT JOIN (就是 LEFT OUTER JOIN)
两表关联,左表全部保留,右表关联不上用 NULL 表示 -
RIGHT JOIN (就是 RIGHT OUTER JOIN)
右表全部保留,左表关联不上的用 NULL 表示。
CROSS JOIN
cross join 是mysql中的一种连接方式,区别于内连接和外连接,对于 cross join 连接来说,其实使用的就是笛卡尔连接。在MySQL中,当 CROSS JOIN 不使用WHERE子句时,CROSS JOIN产生了一个结果集,该结果集是两个关联表的行的乘积。通常,如果每个表分别具有n和m行,则结果集将具有n*m行
如果 cross 不实用 join 的效果与 inner join 不使用 on 的结果是一样的
UNION
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, name FROM apps
如果不想删除重复数据,那么使用 UNION ALL
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。