zoukankan      html  css  js  c++  java
  • 图解 SQL 各种连接查询之间的区别

    关于sql的join语法 ,有很多种用法,如left,inner等等

       假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同。

    1.  INNER JOIN

    SELECT * FROM TableA  INNER JOIN TableB ON TableA.name = TableB.name

    Inner join 产生的结果集中,是A和B的交集。

    2. FULL [OUTER] JOIN 

    SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name 

    Full outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。

    可以使用IFNULL判断。

    如SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
    WHERE TableA.id IS null OR TableB.id IS null:可以查询出A与B的并集去掉A与B的交集的结果集

    3. LEFT [OUTER] JOIN

     Left outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代

    SELECT * FROM TableA  LEFT OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableB.id IS null

        产生在A表中有而在B表中没有的集合。

    http://blog.csdn.net/xuanjiewu/article/details/50636465

  • 相关阅读:
    Goflyway
    amd 阉割理论
    wget命令下载页面里所有资源文件
    linux fpcup-Lazarus_fpcupdeluxe TEncoding 乱码
    Error: (lazbuild) 不能加载包 fpcupdeluxe 手工干预卸载问题模块
    集合 数据 指针方法操作集合
    cmake windows pthread
    4 bit all 15
    Parser b2c
    Offline Explorer 规则
  • 原文地址:https://www.cnblogs.com/chenxihui/p/8492238.html
Copyright © 2011-2022 走看看