LeetCode 175. Combine Two Tables
https://leetcode.com/problems/combine-two-tables/description/
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
-
Since the PersonId in table Address is the foreign key of table Person, we can join this two table to get the address information of a person.
-
Considering there might not be an address information for every person, we should use
outer join
instead of the defaultinner join
. - Note: Using
where
clause to filter the records will fail if there is no address information for a person because it will not display the name information.
1 Create table If Not Exists Person (PersonId int, FirstName varchar(255), LastName varchar(255)); 2 Create table If Not Exists 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'); 7 8 # Write your MySQL query statement below 9 select P.FirstName, P.LastName, A.City, A.State 10 from Person P left join Address A 11 on P.PersonId = A.PersonId;