테스트 사이트 - 개발 중인 베타 버전입니다

mysql 질문드립니다. 채택완료

rlawhd 5년 전 조회 6,507

mb_member : 회원테이블

mb_pay : 회원구매테이블

 

mb_member 테이블은 

mb_key,mb_name이 있고

ex)

mb_key / mb_name

1 / 홍길동

2 / 김영희

이고,

 

mb_pay 테이블은

mb_key,mb_pay 컬럼이 있으며

 

ex)

mb_key/ mb_pay

1 / 2020-01-01

1 / 2020-01-02

1 / 2020-01-03

2 / 2020-01-01

2 / 2020-01-02

 

이런식으로 쌓여있습니다.

출력하고자하는것은

 

이름               구매일

홍길동           처음구매일 / 마지막 구매일

김영희           처음구매일 / 마지막 구매일

 

입니다.

제가 생각해본 코드는

 

</p>

<p>select a.mb_name,b.mb_pay

from mb_member as a left join mb_pay as b

on a.mb_key = b.mb_key </p>

<p>
 

우선 join으로 2개를 묶었는데 

어떤식으로 한사람에 대해 처음구매일이랑 마지막구매일을 구해서 출력해야될지 모르겠네요.

 

홍길동 /  최초구매일 / 마지막 구매일 이런식으로 db에 들어가있으면 모르겠는데

 

홍길동 최초구매일

홍길동 마지막구매일

김영희 최초구매일

김영희 마지막구매일

 

이런식으로 4개가 나올텐데 이걸 어떻게 출력시킬수있을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
m
5년 전

SELECT A.mb_name,

( SELECT MAX(mb_pay)  FROM mb_pay as B where B.mb_key = A.mb_key ) as max,

( SELECT MIN(mb_pay)  FROM mb_pay as B where B.mb_key = A.mb_key ) as min

from mb_member as A 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인