/*
♥ mysql 中:内连接、左外、右外、外连接
首先来理解一下概念:
//首先需要两个表,两个表中需要有共有的列来匹配两个表中的行
内连接:我感觉它的意思就是说,把两个表中的匹配到的(两边儿都有的)然后结合到一起
【关键字单词释义】: innner(内部) join(结合){把两边儿都有的结合}
左外连接;我感觉它的意思就是说,在内连接的基础上,遇到没有匹配到右表中数据的,然后还是会把左表中的数据结合
【关键字单词释义】: left(左) join(结合){按着左边有的结合}
右外连接:我感觉它的意思就是说,在内连接的基础上,遇到没有匹配到左表中数据的,然后还是会把右表中的数据结合
【关键字单词释义】: right(右) join(结合){按着右边有的结合}
外连接;就是把左外连接和右外连接结合一下,用| UNION |关键字把左,右外连接结合
♥-- 首先新建两个表
【table1】 | 【table2】
id 姓名 性别 | id 年龄 爱好
1 小明 男 | 1 20 上网
2 小红 女 | 2 18 接吻
3 小可爱 女 | 4 22 拥抱
*/
-- 【使用内连接】inner jion
SELECT *
FROM table1 INNER JOIN table2
WHERE table1.`id`=table2.`id`
-- 查询结果表格
-- id 姓名 性别 id 年龄 爱好 | ♥【结论】:
-- 1 小明 男 1 20 上网 | 把表中都有的id列 id为1和2的结合到了一起
-- 2 小红 女 2 18 接吻 |
-- 【使用左外连接】left jion on(和where差不多?我也不是很理解)
SELECT *
FROM table1 LEFT JOIN table2 ON table1.`id`=table2.`id`
-- 查询结果表格
-- id 姓名 性别 id 年龄 爱好 |
-- 1 小明 男 1 20 上网 | ♥【结论】:
-- 2 小红 女 2 18 接吻 | 把表中都有的id列 id为1和2的结合到了一起
-- 3 小可爱 女 \Null \Null \Null | 另外把【左】表中的 id为3的也结合到了一起 ,右边儿值显示为null
-- 【使用右外连接】right jion on(和where差不多?我也不是很理解)
SELECT *
FROM table1 RIGHT JOIN table2 ON table1.`id`=table2.`id`
-- 查询结果表格
-- id 姓名 性别 id 年龄 爱好 |
-- 1 小明 男 1 20 上网 | ♥【结论】:
-- 2 小红 女 2 18 接吻 | 把表中都有的id列 id为1和2的结合到了一起
-- \null \null \null 4 22 拥抱 | 另外把【右】表中的 id为4的也结合到了一起 ,左边儿值显示为null
-- 【使用外连接】union
-- 其实就是用 union 把上面的两个结合
SELECT *
FROM table1 LEFT JOIN table2 ON table1.`id`=table2.`id`
UNION
SELECT *
FROM table1 RIGHT JOIN table2 ON table1.`id`=table2.`id`
-- 查询结果表格
-- id 姓名 性别 id 年龄 爱好 |
-- 1 小明 男 1 20 上网 | ♥【结论】:
-- 2 小红 女 2 18 接吻 | 把两个表中的行全部都结合到了一起;
-- 3 小可爱 女 \N \N \N |
-- \N \N \N 4 22 拥抱 |
-- starry 每天进步一点点,2017年6月9日15:07:07