• 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
     
  • 相关阅读:
    [NOI2003]文本编辑器
    [TyvjP1413]费用流模板裸题
    POJ 3255 dijkstra次短路
    [TyvjP1474]二维线段树区间更新+查询
    [转]二分图的必须边
    匈牙利算法代码及理解
    jloi2013一些想法
    uva11987 并查集小技巧
    【水】tyvj1523 平面几何入门
    Tyvj1462 细节凸包
  • 原文地址:https://www.cnblogs.com/zouqf/p/10282049.html
Copyright © 2020-2023  润新知