zoukankan      html  css  js  c++  java
  • sql语句中的 inner join 、 left join 、 right join、 full join 的区别

    简单明了地说,连接分内连接和外链接

    假设有A和B两张表

    内连接:inner join   表示把AB表的记录相符都显示出来,把AB表不符合条件的都排除

    外连接分三种,即左连接(LEFT OUTER JOIN)、右连接(RIGHT OUTER JOIN)、全连接(FULL OUTER JOIN),下面就简单解析一下,。1.A LEFT OUTER JOIN B表示把A表的记录都显示出来,把B表符合条件的结果集显示出来,不符合条件的用NULL表示。2.A RIGHT OUTER JOIN B表示把B表的记录都显示出来,把A表符合条件的结果集显示出来,不符合条件的用NULL表示。3.A FULL OUTER JOIN B 表示把A表和B表的记录都显示出来,不符合条件的用NULL表示。

    实例:

    [TEST@ORA1] SQL>select * from a;

    编号 姓名
    ---- ----------
    1000 张三
    2000 李四
    3000 王五

    [TEST@ORA1] SQL>select * from b;

    编号 商品
    ---- ----------
    1000 电视机
    2000 录像机
    4000 自行车

    [TEST@ORA1] SQL>set null 空值--这里为了显示方面我把NULL定义成了[空值]

    [TEST@ORA1] SQL>select a.*,b.* from a inner join b on a.编号=b.编号;

    编号 姓名 编号 商品
    ---- ---------- ---- ----------
    1000 张三 1000 电视机
    2000 李四 2000 录像机

    [TEST@ORA1] SQL>select a.*,b.* from a left join b on a.编号=b.编号;

    编号 姓名 编号 商品
    ---- ---------- ---- ----------
    1000 张三 1000 电视机
    2000 李四 2000 录像机
    3000 王五 空值 空值

    [TEST@ORA1] SQL>select a.*,b.* from a right join b on a.编号=b.编号;

    编号 姓名 编号 商品
    ---- ---------- ---- ----------
    1000 张三 1000 电视机
    2000 李四 2000 录像机
    空值 空值 4000 自行车

    [TEST@ORA1] SQL>select a.*,b.* from a full join b on a.编号=b.编号;

    编号 姓名 编号 商品
    ---- ---------- ---- ----------
    1000 张三 1000 电视机
    2000 李四 2000 录像机
    3000 王五 空值 空值
    空值 空值 4000 自行车

    ---

  • 相关阅读:
    POJ 1149 PIGS(Dinic最大流)
    HDU 4514 湫湫系列故事——设计风景线(并查集+树形DP)
    [kuangbin带你飞]专题十一 网络流个人题解(L题留坑)
    BZOJ 3931 网络吞吐量(最短路+拆点最大流)
    学习RMQ-ST表
    `这个符号在mysql中的作用
    用一条mysql语句插入多条数据
    Leetcode 257 Binary Tree Paths 二叉树 DFS
    Leetcode 203 Remove Linked List Elements 链表
    Leetcode 38 Count and Say 传说中的递推
  • 原文地址:https://www.cnblogs.com/Impulse/p/5045872.html
Copyright © 2011-2022 走看看