2012-07-13 1 views
0

나는 두 개의 테이블이 있고이 두 테이블에서 결과를 가입하려는하지만 내 조건은 여기에 있습니다 : 테이블에서날짜별로 두 개의 테이블을 정렬하고 각 테이블의 결과를 특정 값으로 제한하는 방법?

 
Member Table 
+------+----------+--------+----------------------+ 
| a_id | name  | Active | Date     | 
+------+----------+--------+----------------------+ 
| 1 | Da Vinci | 1  | 2012-03-27 15:40:14 | 
| 2 | Monet | 0  | 2012-04-16 01:14:17 | 
| 3 | Van Gogh | 0  | 2012-03-22 15:49:59 | 
| 4 | Picasso | 1  | 2012-02-27 09:40:05 | 
| 5 | Renoir | 1  | 2012-04-22 15:40:14 | 
+------+----------+--------+----------------------+ 

Purchase Table 
+------+------+-------------------+---------------------+-------+ 
| a_id | p_id | title    | purchase date  | price | 
+------+------+-------------------+---------------------+-------+ 
| 1 | 1 | The Last Supper | 2012-03-27 15:40:14 | 34 | 
| 1 | 2 | The Mona Lisa  | 2012-04-27 15:40:14 | 87 | 
| 3 | 3 | Starry Night  | 2012-03-27 15:40:14 | 48 | 
| 3 | 4 | The Potato Eaters | 2012-03-27 15:40:14 | 67 | 
| 3 | 5 | The Rocks   | 2012-03-27 15:40:14 | 33 | 
| 5 | 6 | Les Deux Soeurs | 2012-04-30 15:40:14 | 64 | 
+------+------+-------------------+---------------------+-------+ 

나는이 개 가장 최근의 활동적인 회원 (회원 테이블)과 마지막을 찾으려 위 구매 테이블에서 1 번 구입. 그 결과는 다음과 같아야합니다 :

 
+------+------+-------------------+---------------------+-------+ 
| a_id | p_id | title    | purchase date  | price | 
+------+------+-------------------+---------------------+-------+ 
| 1 | 2 | The Mona Lisa  | 2012-04-27 15:40:14 | 87 | 
| 5 | 6 | Les Deux Soeurs | 2012-04-30 15:40:14 | 64 | 
+------+------+-------------------+---------------------+-------+ 

이 질문에 대한 답을 찾기 위해 몇 시간을했지만 아무런 해결책도 찾지 못했습니다. 도와주세요.

감사합니다.

+0

? MySQL, MS SQL Server, ...? – Wiseguy

답변

1

SELECT a.a_id, p.p_id, p.title, p.purchase_date, p.price 
FROM Member a LEFT JOIN Purchase p ON a.a_id = p.a_id 
WHERE a.Active = 1 
ORDER BY a.Date DESC LIMIT 2 

변경

ORDER BY a.Date DESC 

에 시도
ORDER BY a.Date DESC, p.purchase_date DESC 
당신이 사용하고있는 DBMS
+0

귀하의 솔루션에 대해 대단히 감사합니다. 여기에 내 질문은, 어떻게 내가 구매 표에서 추출한 값을 1로 제한해야합니까 DESC에서 날짜별로 정렬해야합니다. 더 구체적으로 a_id 1은 2 번 구매했습니다 (p_id 1 및 2). 이제는 p_id 2에서 값을 추출해야합니다. 가장 최근에 구매 한 항목은 a_id 1입니다. – MahiloDai

+1

주문 후 원하는 기준에 따라 조건을 수정할 수 있습니다. 이 경우 회원 가입 날짜를 먼저 정렬 한 다음 각 회원의 구매 날짜를 정렬하고 싶습니다. [this] (http://stackoverflow.com/questions/2051162/sql-multiple-column-ordering)을 참조하십시오. – lusketeer

관련 문제