• left join用法


    表1: Person
    +-------------+---------+
    | 列名 | 类型 |
    +-------------+---------+
    | PersonId | int |
    | FirstName | varchar |
    | LastName | varchar |
    +-------------+---------+
    PersonId 是上表主键

    表2: Address
    +-------------+---------+
    | 列名 | 类型 |
    +-------------+---------+
    | AddressId | int |
    | PersonId | int |
    | City | varchar |
    | State | varchar |
    +-------------+---------+
    AddressId 是上表主键

    编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
    FirstName, LastName, City, State

    解法:不能使用常规的关联查询,因为题目说明不是每个person都有地址信息
    所以使用left join来查询,右表没有信息的时候就不显示
    LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
    反例:select FirstName,LastName,City,State from Person,Address where Person.PersonId = Address.PersonId因为不是每个person都有address,所以where后面的语句会被过滤掉,inner join具有同样功能
    正例:select FirstnAME,LastName,City,State from Person left join Address on Person.PersonId = Address.PersonId

  • 相关阅读:
    写excel文件-xlsxwriter包的使用
    python代码规范
    mac系统的插件
    bash字符串处理
    ssh到ubuntu没颜色
    linux mysql 端口号修改
    Centos7 编译安装 PHP7.1,以及msgpack扩展
    Xmanager4注册码
    Python 的 pyinotify 模块 监控文件夹和文件的变动
    Python的50个模块,满足你各种需要
  • 原文地址:https://www.cnblogs.com/zhz-8919/p/10666554.html
Copyright © 2020-2023  润新知