데이터베이스/쿼리 문제

175. Combine Two Tables (leetCode 코딩 알고리즘 문제)

daslyee 2021. 8. 27. 21:47
728x90

1. leetCode 접속 후 Problems 에서 Database 문제 중 175번 선택

 

 

 

2. 문제는 영어지만 번역기로 돌리면 충분히 이해 가능한 범위일 수도 있다.

문제를 구글번역기로 번역하면 다음과 같다.

 

문제 : 각 사람에 대한 주소가 있는지 여부에 관계없이 Person 테이블의 각 사람에 대해 다음 정보를 제공하는 보고서에 대한 SQL 쿼리를 작성합니다.

 

 

3. 정답 : Description 옆에 Solution 탭으로 이동 또는 

https://nifannn.github.io/2017/10/25/SQL-Notes-Leetcode-175-Combine-Two-Tables/ 참고

 

SQL Notes: Leetcode#175 Combine Two Tables - Memogrocery

Problem 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 col

nifannn.github.io

 

4. 정답 해설

각 사람에 대한 주소(AddressId)가 있는지

여부에 관계없이(left join. 관계가 있다면 inner join으로 추정) Person 테이블(table 1 - Person)

 

각 사람에 대해 다음 정보(table 2 - Address)를 제공하는 보고서에 대한

SQL 쿼리(FirstName, LastName, City, State)를 작성합니다.

 

두 테이블의 키는 추정해본다면 공통으로 들어가 있는 컬럼인 PersonId 로 조인을 해야되겠다는 생각이 들 것이고,

위에서 코멘트했듯이 사람의 주소가 있든 없든 무조건 정보를 제공해야하니 left join으로 두 테이블을 이어주면 될 것이다.

 

5. 쿼리 (위 정답 링크와 동일)

SELECT table1.FirstName, table1.LastName, table2.City, table2.State 
FROM Person AS table1 
LEFT JOIN Address AS table2 
ON table1.PersonId = table2.PersonId;

 

728x90