[SQL] JOIN

gnlenfn·2021년 10월 4일
0

A 테이블과 B 테이블의 일치하는 부분을 기준으로 두 테이블을 합치는 것.
해커랭크 SQL 문제에서 BETWEEN 활용이 나와 복습 겸 적어둔다.

처음에 문제를 보고 Grade에 맞는 Marks를 새로 열로 만들고 (WHEN THEN을 통해) 해야하는 건가 생각했는데 보통 이런 문제는 쿼리 하나로 끝나니까 다른 방법이 있었다.

JOIN을 하면서 BETWEEN을 사용해 한번에 Grade를 나타낼 수 있었다.

SELECT IF(g.Grade < 8, NULL, s.Name), g.Grade, s.Marks
FROM STUDENTS AS s
JOIN GRADE AS g
ON s.Marks BETWEEN g.Min_Mark AND g.Max_Mark
ORDER BY g.Grade DESC, s.Name, s.Marks;

BETWEEN 뿐 아니라 IF도 잘 기억해놔야겠다.
g.Grade가 8보다 작으면 NULL이 되고 그렇지 않으면 s.Name이 된다는 쿼리다.

0개의 댓글