zoukankan      html  css  js  c++  java
  • [LeetCode#175]Combine Two Tables

    Table: Person
    
    +-------------+---------+
    | Column Name | Type    |
    +-------------+---------+
    | PersonId    | int     |
    | FirstName   | varchar |
    | LastName    | varchar |
    +-------------+---------+
    PersonId is the primary key column for this table.
    Table: Address
    
    +-------------+---------+
    | Column Name | Type    |
    +-------------+---------+
    | AddressId   | int     |
    | PersonId    | int     |
    | City        | varchar |
    | State       | varchar |
    +-------------+---------+
    AddressId is the primary key column for this table.
     
    
    Write a SQL query for a report that provides the following information for each person in the Person table, regardless if there is an address for each of those people:
    
    FirstName, LastName, City, State
    

      

    本题是比较简单的题目:要求让我们写一个SQL查询,报表能为person表中的每个人提供FirstName、LastName、City、和State,无论这些人是否有地址:

     解法一:

    SELECT a.FirstName, a.LastName,  b.City, b.State FROM Person as a 
    LEFT JOIN Address as b 
    on a.PersonId = b.PersonId;
    

      

    解法二:

      可以使用关键字NATURAL,这样我们就不要申明具体的列了,MySQL可以自行搜搜相同的列:

    SELECT a.FirstName, a.LastName, b.City, b.State 
    FROM Person as a 
    NATURAL LEFT JOIN  Address as b; 
    

      

    解法三:
      在使用LEFT JOIN时,我们也可以使用关键字USING来申明我们想用哪个列名来进行联合:

    SELECT a.FirstName, a.LastName, b.City, b.State 
    FROM Person as a 
    LEFT JOIN  Address as b
    USING(PersonId); 
    

      

                  
    申明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    数据库中表的主键的定义
    软件的三大类型
    常用逻辑公式
    软件开发中常用英文含义
    2017.11.27T19_8zuoye
    2017.11.29T19_B1_9zuoye chihuolianmeng
    2017.12.1T19_B2_1zuoye
    2017.12.6T19_B2_3.4
    2017.12.1T19_B2_2zuoye
    2017.12.6T19_B2_3.2 zuoye
  • 原文地址:https://www.cnblogs.com/lsyb-python/p/11113271.html
Copyright © 2011-2022 走看看