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补充

  • 相关阅读:
    Attention中的qkv与机器翻译中的对应关系
    numpy.copy和torch.tensor的cpu/gpu
    F1值的优化macro
    py中函数是传值还是传引用
    scipy.optimize.minimize||非线性规划
    离散label的优化trick
    python Queue/collections.deque
    tf.pad学习
    tensor2tensor-transformer源码学习
    最早的attention论文学习-通过联合学习进行对齐和翻译的神经机器翻译
  • 原文地址:https://www.cnblogs.com/zcy1103/p/10654028.html
Copyright © 2011-2022 走看看