zoukankan      html  css  js  c++  java
  • sql常用到的查询连接

    一、内连接(Inner Join)

    select * from a inner join b on a.name=b.name;

    此语句的结果为同时匹配表a和表b的记录集。即内连接取的是两个表的交集。

    内连接分细分为三种:

    1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接 表中的所有列,包括其中的重复列。

    2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些 运算符包括>、>=、<=、<、!>、!<和<>。

    3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询 结果集合中所包括的列,并删除连接表中的重复列。

    二、全外连接(full outer join)

    select * from a full outer join b on a.name=b.name;

    此语句的结果为表a与表b的并集,即任意一个表的内容都将被查询出来,如果另一个表无对应的项,则显示为null

    select * from a full outer join b on a.name=b.name where a.name is null or b.name is null;

    此语句的结果为表a与表b的并集除去两表的交集。即除去了两表都有的部分,剩余的是两表各自不同的部分

    三、左外连接(left outer join)

    select * from a left outer join b on a.name=b.name;

    此语句的结果为表a的所有项加表b与a相匹配的项,b中没有与a匹配的项时显示为null

    select * from a left outer join b on a.name=b.name where b.name is null;

    此语句的结果为表a的所有项除去两表的交集

    四、右外连接(right outer join)

    select * from a right outer join b on a.name=b.name;

    此语句的结果为表a与表b匹配的项加表b的所有项,a中没有与b匹配的项时显示为null

    select * from a right outer join b on a.name=b.name where a.name is null;

    此语句的结果为表b的所有除去两表的交集

    五、交叉连接(cross join)

    显式的和隐式,不带on子句,返回的是两表的乘积,也叫笛卡尔积。

    六、联合连接(union join)


    转自:https://blog.csdn.net/gq137181972/article/details/79490558

  • 相关阅读:
    codeforces707B:Bakery
    codeforces707A:Brain's Photos
    BZOJ1084 [SCOI2005]最大子矩阵
    BZOJ1264 [AHOI2006]基因匹配Match
    BZOJ2764 [JLOI2011]基因补全
    codevs1257 打砖块
    BZOJ1079 [SCOI2008]着色方案
    BZOJ1026 [SCOI2009]windy数
    菜鸟学自动化测试(一)----selenium IDE
    关于w3school的html5部分output 元素实例代码(点亲自试一试进去)的问题纠正
  • 原文地址:https://www.cnblogs.com/ashanxiaoya/p/11244894.html
Copyright © 2011-2022 走看看