SELECT * FROM users u
WHERE user_id in (
SELECT user_id FROM orders o
WHERE payment_method = 'kakaopay'
)
Subquery 란?
쿼리문 안에 들어가는 명령을 말함
()로 묶어서 사용하고, 줄바꿈을 해야 구분이 쉽다.
SELECT, FROM, WHERE 등 어디나 들어가도 가능하다.
WHERE 절 안에는 in을 사용해야 한다
SELECT pu.user_id , pu.point, a.avg_likes FROM point_users pu
INNER JOIN (
SELECT user_id , ROUND(AVG(likes),1) as avg_likes FROM checkins c
GROUP BY user_id
) a on pu.user_id = a.user_id
마치 원래 있었던 테이블처럼 사용하는게 서브쿼리이다.
각 쿼리를 따로 만들고 서로 JOIN 하는 방식으로 사용해도 된다.
SELECT c.checkin_id, c2.title , c.course_id, c.user_id, c.likes,
(
SELECT ROUND(AVG(likes),1) FROM checkins
WHERE course_id = c.course_id
) as course_avg
FROM checkins c
INNER JOIN courses c2 on c.course_id = c2.course_id
위에서 컬럼을 셀렉한 후에 아래 서브쿼리에서 대입하며 매칭시킬 수 있다.
마치 JOIN 과 같은 느낌이 되는건가?
With 구문으로 간단하게 만들기
'개발일지' 카테고리의 다른 글
2023.10.11. TIL 텍스트 애니메이션 및 반응형 폰트 비율 (0) | 2023.10.11 |
---|---|
2023.10.11. TIL 그라데이션 (0) | 2023.10.11 |
SQL TIL 3주차 : Join (0) | 2023.10.11 |
SQL TIL 2주차 : Group by, Order by (0) | 2023.10.11 |
SQL TIL 1주차 : Select, Where (0) | 2023.10.11 |