zoukankan      html  css  js  c++  java
  • SQL Server内连接、左外连接、右外连接、完全连接、交叉lianjie

    数据准备:

    create table T1(
    A varchar(10) not null,
    B varchar(10) not null,
    C tinyint not null
    );
    
    create table T2(
    B varchar(10) not null,
    E tinyint not null
    );
    
    
    insert into T1
    values
    ('a1', 'b1', 5),
    ('a1', 'b2', 6),
    ('a2', 'b3', 8),
    ('a2', 'b4', 12);
    
    insert into T2
    values
    ('b1', 3),
    ('b2', 7),
    ('b3', 10),
    ('b3', 2),
    ('b5', 2);
    
    select * from T1;
    select * from T2;

    结果:

     1 A          B          C
     2 ---------- ---------- ----
     3 a1         b1         5
     4 a1         b2         6
     5 a2         b3         8
     6 a2         b4         12
     7 
     8 (4 行受影响)
     9 
    10 B          E
    11 ---------- ----
    12 b1         3
    13 b2         7
    14 b3         10
    15 b3         2
    16 b5         2
    17 
    18 (5 行受影响)

    1、内连接

    1 select * from T1 inner join T2 on T1.B = T2.B
    2 
    3 A          B          C    B          E
    4 ---------- ---------- ---- ---------- ----
    5 a1         b1         5    b1         3
    6 a1         b2         6    b2         7
    7 a2         b3         8    b3         10
    8 a2         b3         8    b3         2

    2、左外连接

    1 select * from T1 left outer join T2 on T1.B = T2.B
    2 
    3 A          B          C    B          E
    4 ---------- ---------- ---- ---------- ----
    5 a1         b1         5    b1         3
    6 a1         b2         6    b2         7
    7 a2         b3         8    b3         10
    8 a2         b3         8    b3         2
    9 a2         b4         12   NULL       NULL

    3、右外连接

    1 select * from T1 right outer join T2 on T1.B = T2.B
    2 
    3 A          B          C      B          E
    4 ---------- ----------   ---- ---------- ----
    5 a1         b1         5      b1         3
    6 a1         b2         6      b2         7
    7 a2         b3         8      b3         10
    8 a2         b3         8      b3         2
    9 NULL     NULL     NULL b5         2

    4、完全连接

     1 select * from T1 full outer join T2 on T1.B = T2.B
     2 
     3 A            B            C       B          E
     4 ---------- ---------- ---- ---------- ----
     5 a1           b1           5       b1         3
     6 a1           b2           6       b2         7
     7 a2           b3           8       b3         10
     8 a2           b3           8       b3         2
     9 a2           b4           12     NULL      NULL
    10 NULL       NULL       NULL  b5         2

    5、交叉连接(笛卡尔乘积)

     1 select * from T1 cross join T2
     2 
     3 A          B          C    B          E
     4 ---------- ---------- ---- ---------- ----
     5 a1         b1         5    b1         3
     6 a1         b1         5    b2         7
     7 a1         b1         5    b3         10
     8 a1         b1         5    b3         2
     9 a1         b1         5    b5         2
    10 a1         b2         6    b1         3
    11 a1         b2         6    b2         7
    12 a1         b2         6    b3         10
    13 a1         b2         6    b3         2
    14 a1         b2         6    b5         2
    15 a2         b3         8    b1         3
    16 a2         b3         8    b2         7
    17 a2         b3         8    b3         10
    18 a2         b3         8    b3         2
    19 a2         b3         8    b5         2
    20 a2         b4         12   b1         3
    21 a2         b4         12   b2         7
    22 a2         b4         12   b3         10
    23 a2         b4         12   b3         2
    24 a2         b4         12   b5         2
  • 相关阅读:
    抽象类
    继承
    面向对象的静态属性,类方法,静态方法
    查找linux系统下的端口被占用进程的两种方法 【转】
    awk学习
    【转】借助LVS+Keepalived实现负载均衡
    ORA-28001: the password has expired解决方法
    ORACLE的还原表空间UNDO写满磁盘空间,解决该问题的具体步骤
    Oracle控制文件多路复用以及Oracle备份重建控制文件
    RedHat6.1通过配置yum server安装软件包
  • 原文地址:https://www.cnblogs.com/xhcdream/p/8366385.html
Copyright © 2011-2022 走看看