我在嘗試合併DISTINCT
& ORDER BY
時遇到了問題。我有一個Users
表具有以下屬性id, name
&我有一個Purchases
表具有以下屬性id,user_id,date_purchased,returned
SQL:在外部查詢中保留子查詢順序
我想檢索所有獨特Users
有一個returned
Purchase
通過date_purchased
排序。
下面是一些樣本數據
Users
id | name
---+-----------
1 | Bob
2 | John
3 | Bill
4 | Frank
5 | Fred
6 | Al
Purchases
id | user_id | startdate | returned
-----+------------------+------------+---------------
100 | 1 | 2015-02-06 | true
101 | 1 | 2015-01-06 | true
102 | 1 | 2015-02-05 | false
103 | 2 | 2015-02-05 | false
104 | 2 | 2015-02-05 | false
105 | 3 | 2015-01-05 | true
106 | 3 | 2015-02-04 | true
107 | 4 | 2015-01-07 | true
108 | 5 | 2015-02-05 | false
109 | 6 | 2015-02-07 | false
110 | 6 | 2015-01-05 | true
結果應該是下面的用戶ID的1,3,4,6
這裏是我寫的
SELECT DISTINCT (id) FROM (
SELECT users.id as id, purchases.startdate FROM
users INNER JOIN purchases on users.id=purchases.id
WHERE returned=true
ORDER BY startdate)
該查詢正確返回結果的查詢;但是它的順序不正確。閱讀其他答案我發現你不能維護子查詢順序。我試圖將訂單移動到外部查詢;然而,startdate
也需要存在於選擇查詢&這不是我想要
目前還不清楚您的查詢有何意圖回答。每個購買都有一個'startdate',一個用戶可能會返回多個購買。通過*哪個*'startdate',那麼你是否想要命令結果? – 2015-02-06 20:28:12