#Mysql Join
- 内连接就是计算结果集的交集
SELECT * FROM table_a, table_b WHERE table_a.id = table_b.id
##左右外部连接(内连) - 左外部连接是计算左表全部数据以及和右表有交集的数据
SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id
- 右外部连接是计算右表全部数据以及和左表有交集的数据
SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id
##左右外部连接不内连 - 只计算左表排除和右表交集后的数据(右表结果集为null的数据剔除)
SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_b.id IS null
- 只计算右表排除和左表交集后的数据(左表结果集为null的数据剔除)
SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_a.id IS null
##全外连接 - 计算左右表结果集的交集以外的数据
SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_b.id IS null UNION SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_a.id IS null
##全外内连接 - 计算结果集的并集
SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id UNION SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id