2012-07-13 20 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 | 
+------+------+-------------------+---------------------+-------+ 

從表上面我想找到2個最近活躍的成員(成員表)和他們的最後從購買表中購買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 2012-07-13 17:38:35

回答

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 
+0

非常感謝您的解決方案。在這裏,我的問題是,我如何限制從購買表中提取的值1,這也應該按日期在DESC中進行排序。更具體地說,a_id 1已經進行了2次購買(p_id 1和2)。現在,它應該僅從p_id 2中提取a_id 1最近購買的值。 – MahiloDai 2012-07-14 02:00:51

+1

您可以在訂單之後修改標準按您想要的順序。在這種情況下,您想先對會員加入日期進行排序,然後再對每個會員的購買日期進行排序。參考[this](http://stackoverflow.com/questions/2051162/sql-multiple-column-ordering) – lusketeer 2012-07-14 19:28:23

相關問題