小工具知识网

当前位置: 首页 > 行业知识 > SQL的七种JOIN

行业知识

SQL的七种JOIN

2026-11-10 21:12:43 来源:互联网转载

Mysql的七种JOIN图示

在使用 join 时,on 和 where 条件的区别如下:

  • on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。

  • where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 join 的含义了,条件不符的就全部过滤掉。

    数据准备,我们先准备两张表数据,表1:

    表2:

    1,LEFT JOIN 左连接
    SELECT columnsFROM table1LEFT JOIN table2ON table1.column_name=table2.column_name;参数说明:columns:要显示的列名。table1:表1的名称。table2:表2的名称。column_name:表中用于连接的列名。

    LEFT JOIN 关键字从左表(Websites)返回所有的行,即使右表(access_log)中没有匹配默认补NULL。

    左连接不包含共有部分
    2,RIGHT JOIN 右连接
    SELECT column_name(s)FROM table1RIGHT JOIN table2ON table1.column_name=table2.column_name;
    右连接不包含共有部分
    3, INNER JOIN 内连接
    SELECT column_name(s)FROM table1INNER JOIN table2ON table1.column_name=table2.column_name;
    4,FULL OUTER JOIN全连接
    SELECT column_name(s)FROM table1FULL OUTER JOIN table2ON table1.column_name=table2.column_name;

    可以从上面看出,mysql是不支持该语法的,oracle是支持的。

    这个时候我们可以使用UNION 操作符进行。

    SELECT column_name(s) FROM table1UNIONSELECT column_name(s) FROM table2;
    只查非共有的部分

上一篇:代码随想录算法训练营第三十七天|LeetCode738 单调递增的数字、LeetCode968 监控二叉树

下一篇:警惕!违法小偷程序安装风险,切勿尝试!