关键字 | 释义 |
---|---|
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() 最小值
网友评论