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

  • 相关阅读:
    排序算法---堆排序

    排序算法---希尔排序
    简单排序算法
    Jave 垃圾回收查看工具--jstat
    Linux 查看进程IO状态
    vittualenv 和mkvirtualenv
    服务器被当作了肉机去挖矿的解决办法
    pycharm的函数注释 和 父子组件传递
    git初始化操作
  • 原文地址:https://www.cnblogs.com/chenxihui/p/8492238.html
Copyright © 2011-2022 走看看