• LeetCode-175:组合两个表


    题目描述:

    表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

    SQL架构:

    1 Create table Person (PersonId int, FirstName varchar(255), LastName varchar(255));
    2 Create table Address (AddressId int, PersonId int, City varchar(255), State varchar(255));
    3 Truncate table Person;
    4 insert into Person (PersonId, LastName, FirstName) values ('1', 'Wang', 'Allen');
    5 Truncate table Address;
    6 insert into Address (AddressId, PersonId, City, State) values ('1', '2', 'New York City', 'New York');

    解题思路:

      题目要求不管有没有地址信息,都需要返回person的信息,使用left join连接即可

    解决方案:

    select a.FirstName, a.LastName, b.City, b.State
      from Person a
      left join Address b
        on a.PersonId = b.PersonId
     
  • 相关阅读:
    codeforce 896A
    CQH分治与整体二分
    [CQOI2011]动态逆序对
    codeforce Hello 2018 913F sol
    A*算法[k短路([SDOI2010]魔法猪学院)]
    bzoj3524 [POI2014]Couriers
    整体二分
    bzoj5016 [SNOI2017]一个简单的询问
    CF176E Archaeology
    bzoj4551 [TJOI2016&HEOI2016]树
  • 原文地址:https://www.cnblogs.com/zouqf/p/10282049.html
Copyright © 2020-2023  润新知