• left join(一) 方木


    例表a
    aid adate
    1 a1
    2 a2
    3 a3

    表b
    bid bdate
    1 b1
    2 b2
    4 b4

    两个表a,b相连接,要取出id相同的字段
    select * from a inner join b on a.aid = b.bid(这是仅取出匹配的数据)
    此时的取出的是:
    1 a1 b1
    2 a2 b2

    那么left join 指:
    select * from a left join b on a.aid = b.bid
    首先取出a表中所有数据,然后再加上与a,b匹配的的数据
    此时的取出的是:
    1 a1 b1
    2 a2 b2
    3 a3 空字符
    同样的也有right join
    指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
    此时的取出的是:
    1 a1 b1
    2 a2 b2
    4 空字符 b4

    LEFT JOIN 或 LEFT OUTER JOIN。
    左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
    ————————————————

    SQL LEFT JOIN 关键字

    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

    LEFT JOIN 关键字语法

    SELECT column_name(s)
    FROM table_name1
    LEFT JOIN table_name2
    ON table_name1.column_name=table_name2.column_name
    

    注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

    原始的表 (用在例子中的):

    "Persons" 表:

    Id_PLastNameFirstNameAddressCity
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    "Orders" 表:

    Id_OOrderNoId_P
    1 77895 3
    2 44678 3
    3 22456 1
    4 24562 1
    5 34764 65

    左连接(LEFT JOIN)实例

    现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。

    您可以使用下面的 SELECT 语句:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    LEFT JOIN Orders
    ON Persons.Id_P=Orders.Id_P
    ORDER BY Persons.LastName
    

    结果集:

    LastNameFirstNameOrderNo
    Adams John 22456
    Adams John 24562
    Carter Thomas 77895
    Carter Thomas 44678
    Bush George  
  • 相关阅读:
    在CMD下如何搜索某个名字的文件?
    如何设置ESXi中的虚拟机随主机一同启动?
    ubuntu 安装 Cmake(转)
    unique_ptr与std::move的使用
    这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)(转)
    Tensorflow设置显存自适应,显存比例
    Protobuf学习
    tensorflow serving 打印调试log
    Linux下监视NVIDIA的GPU使用情况(转)
    tensorflow serving GPU编译问题
  • 原文地址:https://www.cnblogs.com/leon507/p/16351889.html
Copyright © 2020-2023  润新知