https://leetcode.com/problems/combine-two-tables/description/less
Table: Person
ide
+-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+ PersonId is the primary key column for this table.
Table: Address
this
+-------------+---------+ | 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:spa
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. code
Considering there might not be an address information for every person, we should use outer join
instead of the default inner join
.orm
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;