SQL 3일차_LEETCODE. 175. Combine Two Tables
다양성과 방향성

여행으로 재미있게 살고 엑셀로 성장하는 삶

직무강화/SQL

SQL 3일차_LEETCODE. 175. Combine Two Tables

LATI 라티 2024. 8. 20. 09:21
반응형

 

1.LEET. 175. Combine Two Tables

 

ANSWER
SELECT Person.firstname, Person.lastname, Address.city, Address.state
FROM person
LEFT JOIN Address On person.personId=Address.personId

 

 

HackersLank의 중간 레벨은 어렵기도 하고 지문도 해석하기가 어려워 다른사이트를 찾았다.

LEET에서 많이 한다고 하여 문제 하나 풀어봤는데, 생각보다 되게 좋다!!

 

틀린 부분이 어디인지, 결과값 중 다른 곳이 어디인지 초록색, 빨간색으로 같이 알려준다.

CITY 열이 빠져서 CITY 열이 다 초록색으로 바뀌어 있는 상황.

하나하나 오류를 찾는 것도 중요한데 가이드가 있고 없고 차이가 진짜 크다.

 

[SQL 작성 시 주의할 점]
1. 문제가 요하는 것을 정확히 파악하고 빠트리지 말 것. (어떤 열을 불러오는지, 조건은 몇개인지)
2. 단일 테이블, 복수 테이블 사용할 때 사용하는 함수가 다른 것을 염두 할 것 
 2.1. 테이블을 합칠 때엔 JOIN, GROUPBY, HAVING, ORDER BY
 2.2. 테이블 하나만 사용 할 땐 WHERE, ORDER BY

 

 

대박... 이 싸이트 좋다!

실제 작성한 쿼리가 얼마나 걸렸는지 보여주고

더 좋은 쿼리들을 볼 수 있다. ㅎㅎㅎ

 

0.35초 걸림 80%에 해당하는 쿼리

 

 


 

그럼 다른 사람의 쿼리 5개만 분석해보자!!

ㅎㅎ.. 해커랭커스를 하면서 어렵기만 하고 풀이 죽었었는데 리트코드는 재밌다!!

 

1. table 명은 축약어로 활용하여, 사용 할 것.
(결국 같은 내용이라도 컴퓨터가 하나하나 다 읽어야 하기 때문)

 

같은 값을 효율적으로 불러온 쿼리

 

 

 

2. 줄바꿈 없이 한줄로 쓰면 속도가 올라간다.
(이건 좋지 않은 것 같다. 결국 사람이 코드를 짜고 관리해야 하기 때문에 코드가 한눈에 안들어오고 규칙성이 없으면 큰 의미가 없다.

select p.firstName, p.lastName, a.city, a.state from Person as p left join Address as a on p.personId = a.personId;
# Write your MySQL query statement below
SELECT p.firstName, p.lastName, a.city, a.state
FROM Person p LEFT JOIN Address a
ON p.personId = a.personId;

 

 

오잉... 이게 아닌가?

일단, 오늘의 공부는 여기까지.

퇴근하고 LEETCODE 공부하면서 하나하나 깨달아봐야겠다.

 

데이터리안 부트캠프 입문은 9월 초부터 시작인데, 이직하려면 지금부터 준비해야 되니까!! 아자아자~~

반응형