我有這個releases
表在sqlite3的數據庫,列出一個應用程序的每個發行版本:加入有限的子查詢?
|release_id|release_date|app_id|
|==========|============|======|
| 1001| 2009-01-01 | 1|
| 1003| 2009-01-01 | 1|
| 1004| 2009-02-02 | 2|
| 1005| 2009-01-15 | 1|
所以每個APP_ID,將有多個行。我還有一個表,apps
:
|app_id|name |
|======|========|
| 1|Everest |
| 2|Fuji |
我想要顯示的應用程序的名稱和最新版本,其中「最新」指(a)最新的上映時間,如果有重複的,(B)最高RELEASE_ID 。
我可以爲單個應用程序做到這一點:
SELECT apps.name,releases.release_id,releases.release_date
FROM apps
INNER JOIN releases
ON apps.app_id = releases.app_id
WHERE releases.release_id = 1003
ORDER BY releases.release_date,releases.release_id
LIMIT 1
當然ORDER BY適用於整個SELECT查詢,如果我離開了的WHERE子句,它仍然只返回一行。
這是一個小型數據庫的一次性查詢,所以緩慢的查詢,臨時表等都很好 - 我只是無法讓我的大腦圍繞SQL方式來做到這一點。
我喜歡它,而且我甚至明白它 - 謝謝! – 2009-09-10 19:31:38