175. Combine Two Tables (leetCode 코딩 알고리즘 문제)
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;