커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
4) Subquery 사용방법 익혀보기 예시에서 질문
[왕초보] 엑셀보다 쉬운, SQL v3
4주차
북마크
송*강
댓글
4
추천
0
조회수
9
조회수
9
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


예시 (kakaopay로 결제한 유저들의 정보 보기) 에 처음에

일반쿼리로 진행한 것

select u.user_id , u.name , u.email from users u

inner join orders o on u.user_id = o.user_id

where o.payment_method = 'kakaopay';


과 서브쿼리로 진행한 것의 결과값이 다릅니다.

select user_id , name , email from users u

where user_id in (

select o.user_id from orders o

WHERE payment_method = 'kakaopay'

);

첫번째 것은 row 개수가 56개이고

서브쿼리를 쓴것은 ROW 가 51개입니다.


확인해보니 첫번째 코드의 user_id 가 중복이 있는 것으로 확인되었습니다.

그래서 DISTINCT를 걸어주니 동일한 개수가 되었는데요.

select DISTINCT u.user_id , u.name , u.email from users u

inner join orders o on u.user_id = o.user_id

where o.payment_method = 'kakaopay';

이게 맞는 것인지요? user_id가 중복으로 보이는 이유가 무엇인지요?









취소
 공유
취소
댓글 0
댓글 알림
나의얼굴