zoukankan      html  css  js  c++  java
  • sql的基本语句

    SQL中的inner join, left join, right join, full join


    创建两个测试表并且输入相关值
    create table test_a(
    aid int,
    aNum varchar(255)
    );
    create table test_b(
    bid int,
    bNum varchar(255)
    );

    insert into test_a(aid, aNum)
    values
    (1, 'a2015001'),
    (2, 'a2015002'),
    (3, 'a2015003'),
    (4, 'a2015004'),
    (5, 'a2015005');
    insert into test_b(bid, bNum)
    values
    (1, 'b160200p'),
    (2, 'b2015002b'),
    (3, 'b2015003b'),
    (4, 'b2015004b'),
    (8, 'b2015008');

    inner join


    等值连接, 只返回两个表中连接字段相等的行
    select * from test_a inner join test_b on aid = bid;
    结果表只返回两个表中字段相等的行

    left join


    左连接 返回包括左表中的所有记录和右表中联结字段相等的记录
    select * from test_a left join test_b on aid = bid;
    返回包括左表中的所有记录和右表中联结字段相等的记录,没值用null填充
    left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.

    right join


    右联接 返回包括右表中的所有记录和左表中联结字段相等的记录
    select * from test_a right join test_b on aid = bid;
    返回包括右表中的所有记录和左表中联结字段相等的记录,没值用null填充
    和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

    full join


    全联接 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行,相当于left join 和right join的并集
    select * from test_a full join test_b on aid = bid;
    返回两个表的所有记录
    返回两个表的所有记录,没有的值用null补充

  • 相关阅读:
    推荐一个简洁优雅的博客系统,farbox
    flash从数据流判断图片格式防止xss攻击
    iBatis框架batch处理优化 (转)
    hadoop环境中误删除tmp文件夹的恢复
    Mysql04
    MapReduce中文翻译
    Big Table中文翻译
    GFS中文翻译
    HDFS读写流程
    两个网卡的设置
  • 原文地址:https://www.cnblogs.com/zcy1103/p/10654028.html
Copyright © 2011-2022 走看看