가장최근주문일 서브쿼리 질문합니다 채택완료
cho개발
5년 전
조회 1,076
mb_id별로 가장 최근주문일이 4월1일 이전인 mb_id를 추출하려고 하는데 밑에 sql문처럼 하니깐 오류가 발생하는데..
select mb_id from g5_shop_cart where (select max(ct_time) from g5_shop_cart group by mb_id) < '2020-04-01' group by mb_id;
혹시 위에 sql문에서 어디를 수정해야 되나요.. 초보라서 잘 모르겠어요ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
5년 전
오류가 나신다면 오류내용을 같이 올려주셔야 도움이 되겠죠.
그냥 4월1일 이전 데이터에서 mb_id를 추출하며면 되는 거 아닌가요?
</p>
<p>select mb_id,max(ct_time)
from g5_lshop_cart
where ct_time < '2020-04-01'
group by mb_id</p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
c
cho개발
5년 전
�
닥시
5년 전
@cho개발
일단 오류는 서브쿼리에서 결과가 1 row가 아니고 여러개가 나온다는 거네요. where 조건에서 비교식은 양쪽 모두 1 레코드가 되어야 합니다.
4월1일 이후에 주문이 있으면 안 되는 거였군요. 조건에 이 조건을 추가하면 되겠네요.
[code]
select mb_id,max(ct_time)
from g5_shop_cart
where ct_time < '2020-04-01'
and mb_id not in(select mb_id from g5_shop_cart where ct_time >= '2020-04-01')
group by mb_id
[/code]
일단 오류는 서브쿼리에서 결과가 1 row가 아니고 여러개가 나온다는 거네요. where 조건에서 비교식은 양쪽 모두 1 레코드가 되어야 합니다.
4월1일 이후에 주문이 있으면 안 되는 거였군요. 조건에 이 조건을 추가하면 되겠네요.
[code]
select mb_id,max(ct_time)
from g5_shop_cart
where ct_time < '2020-04-01'
and mb_id not in(select mb_id from g5_shop_cart where ct_time >= '2020-04-01')
group by mb_id
[/code]
c
cho개발
5년 전
@닥시
와 맞네요.. not 을 포함시키면 되는데 괜히 어렵게 생각했네요
감사합니다!!
와 맞네요.. not 을 포함시키면 되는데 괜히 어렵게 생각했네요
감사합니다!!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그리고 서브쿼리 오류는 ERROR 1242 (21000): Subquery returns more than 1 row라고 나옵니다