채택완료

mysql 질문드립니다.

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

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

출력하고자하는것은

이름               구매일

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

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

입니다.

제가 생각해본 코드는

Copy
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

 

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

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

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

홍길동 최초구매일

홍길동 마지막구매일

김영희 최초구매일

김영희 마지막구매일

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

|

답변 1개

채택된 답변
+20 포인트

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 

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