SQL之LEFT JOIN、RIGHT JOIN、INNER J

2018-10-31  本文已影响14人  移动端_小刚哥
关键字 释义
inner join内连接 返回左表和右边满足联结条件的数据
left join左连接 返回左表中所有记录和满足连接条件的右表数据,不 满足的字段为NULL
right join右连接 返回左表中所有记录和满足连接条件的右表数据,不满足的字段为NULL

创建两个表

创建表tableA

a_id a_name
001 孙悟空
002 猪八戒
003 玉皇大帝

创建表tableB

b_id b_name
001 张君宝
004 乔峰
007 端正村

left join 左连接

SELECT * FROM tableA a LEFT JOIN tableB b ON a.a_id = b.b_id ORDER BY a.a_id

返回结果为

a_id a_name b_id b_name
001 孙悟空 001 张君宝
002 猪八戒 NULL NULL
003 玉皇大帝 NULL NULL

可以看到左表(A表)所有数据都返回了,满足a.a_id=b.b_id条件的右表(B表)数据返回了,不满足的返回NULL。

right join 右连接

SELECT * FROM tableA a RIGHT JOIN tableB b ON a.a_id=b.b_id  ORDER BY b.b_id

结果为

b_id b_name a_id a_name
001 张君宝 001 孙悟空
004 乔峰 NULL NULL
007 端正村 NULL NULL

可以看到左表(A表)只返回了满足条件a.a_id=b.b_id的数据,不满足条件的字段为NULL,右表(B表)数据全部返回了。

inner join 内连接

SELECT * FROM tableA a INNER JOIN tableB b ON a.a_id = b.b_id ORDER BY a.a_id

返回结果为

a_id a_name b_id b_name
001 孙悟空 001 张君宝

可以看到只返回了同时满足条件a.a_id=b.b_id的数据。

SQL ORDER BY
ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。
GROUP BY必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等。

常用聚合函数

count() 计数
sum() 求和
avg() 平均数
max() 最大值
min() 最小值

参考文章
https://www.jianshu.com/p/1ec9cc9895ad

上一篇 下一篇

猜你喜欢

热点阅读