我有一個客戶表和一個訂單表。SQL選擇查詢以根據關聯表的最大值來訂購結果
Customers表有字段:id, name, status_id
Orders表和字段:id, customer_id, order_date
每個客戶可以有很多訂單。
我想知道是否有一個SQL查詢,從而可以select
的customers
order by
STATUS_ID所有和他們的訂單的最後order_date進行。
那麼,結果將首先列出所有的客戶提供狀態 1,並在那些會從他們最近的訂單是最近到其最近的訂單是至少最近一個一個列出來。然後它將以相同的方式列出狀態2的那些,然後狀態3的方式相同。在整個列表中,每個客戶應該只出現一次。
例如,
客戶表
id, name, status_id
1, john, 2
2, jane, 1
3, tim, 1
訂單表
id, customer_id, date
1, 1, 2013-01-01
2, 1, 2011-10-01
3, 2, 2012-12-01
4, 2, 2010-03-10
5, 3, 2011-02-21
6, 3, 2012-01-11
查詢應該給客戶的名單像這樣
2 jane
3 tim
1 john
蒂姆和簡是約翰之前,因爲他們有一個Jane的前一個訂單(2012-12-01)比Tim的(2012-01-11)更近。
我想這
SELECT customers.id, customers.name, customers.status_id
FROM customers
JOIN orders ON customers.id = orders.customer_id
ORDER BY customers.status_id, orders.date
但一些客戶出現多次。
非常感謝您的幫助, 菲爾
是的,它是可能的(最次但是我沒有看到任何嘗試... – 2013-05-07 05:33:26
感謝米奇。你介意分享一個這樣做的查詢的例子嗎?謝謝。 – Phil 2013-05-07 05:37:21
也許你應該嘗試一下。如果你表現出一些努力,人們將更有可能幫助你。 – 2013-05-07 05:37:55