美文网首页
SQL之LEFT JOIN、RIGHT JOIN、INNER J

SQL之LEFT JOIN、RIGHT JOIN、INNER J

作者: 移动端_小刚哥 | 来源:发表于2018-10-31 14:42 被阅读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

    相关文章

      网友评论

          本文标题:SQL之LEFT JOIN、RIGHT JOIN、INNER J

          本文链接:https://www.haomeiwen.com/subject/ikdatqtx.html