美文网首页
Mlog7: LeetCode --组合两个表

Mlog7: LeetCode --组合两个表

作者: 喜欢书的女孩 | 来源:发表于2020-11-20 08:45 被阅读0次
    image

    学习Mysql ,每日做一道数据库题目,文章仅用做做题记录用途。--章记

    文章目录:

    1. 题目要求--分析
    2. 具体实现--动手
    3. 结果
    4. 知识拓展
    5. 总结

    1. 题目要求--分析

    表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
    
    

    分析:
    1、选取表格中的部分数据,用SELECT(用于从数据库中选取数据);
    2、涉及两个表格,用JOIN (用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段);
    3、无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息,用LEFT JOIN(LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行);

    2. 具体实现--动手

    # Write your MySQL query statement below
    select Person.FirstName,Person.LastName,Address.City,Address.State
    from Person 
    left join Address 
    on Person.PersonId=Address.PersonId
    
    

    3. 结果

    image

    4. 知识拓展

    INNER JOIN:如果表中有至少一个匹配,则返回行
    LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
    RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
    FULL JOIN:只要其中一个表中存在匹配,则返回行
    
    

    5. 总结

    我希望自己的大脑像 CPU 一样处理日常事物,每一件事就像一个进程,当我 focus on 一件事时,大脑被这件事完全占据,当进程由于外部资源限制被停滞时可以回到等待队列。但我希望每一件事都是按照最快时间去处理进入完成队列,每件事都尽可能少的出现在等待队列,这样每天就会好快活。

    相关文章

      网友评论

          本文标题:Mlog7: LeetCode --组合两个表

          本文链接:https://www.haomeiwen.com/subject/vjbavktx.html