
Data Science
384
한편
SQL
에는 매칭되지 않는 오른쪽 테이블의 행을 보존해 주는
RIGHT JOIN
도 있
고, 양쪽 테이블 모두 매칭되지 않는 행을 모두 보존해 주는
FULL OUTER JOIN
도
있다. 하지만 이는 참고로 알아 두기만 하고, 여기서 구현하지는 않을 것이다.
24.8
서브쿼리
SQL
에서는 쿼리의 결과물을 마치 또 다른 테이블인 것처럼 간주하고
SELECT
(또
는
JOIN
)를 할 수 있다. 예를 들어
SQL
에 관심 있는 사용자들 중에서
user_id
가
가장 작은 사용자를 반환하고 싶을 때 이런 서브쿼리(
subquery
)를 쓰면 좋다.
(물론
JOIN
을 통해서도 같은 작업을 할 수 있기는 하지만, 여기서는 서브쿼리를
통한 방법에 대해 알아보자).
SELECT MIN(user
_
id) AS min
_
user
_
id FROM
(SELECT user
_
id FROM user
_
interests WHERE interest = 'SQL') sql
_
interests;
NotQuiteABase
를 잘 설계한 덕에, 별다른 함수를 추가하지 않아도 쉽게 찾아볼
수 있다(여기서는 쿼리의 결과가 실제로 테이블이기 때문에).
likes
_
sql
_
user
_
ids = (
user
_
interests
.where(lambda row: row["interest"] ...