我正在使用Android SQLite數據庫,並且我有一個包含消息的表。每封郵件都有一個ContactId
。我需要獲得與每個ContactId
相關的最新消息列表。SQLite查詢:爲每個不同的聯繫人選擇最新的行
我的查詢看起來像這樣至今:
SELECT * FROM messages GROUP_BY ContactId HAVING (COUNT(ContactId) = 1) ORDER_BY MessageTime DESC
然而,當我運行查詢我得到這個異常:
near "ContactId": syntax error: , while compiling: SELECT * FROM messages GROUP_BY ContactId HAVING (COUNT(ContactId) = 1) ORDER_BY MessageTime DESC
這裏的表定義的情況下,它可以幫助:
create table messages (_id integer primary key autoincrement, ContactId text not null, ContactName text not null, ContactNumber text not null, isFrom int not null, Message text not null, MessageTime int not null);
我使用的是一個StringBuilder類,因爲我在變量中有列名,但這就是它輸出的內容。 –
我對HAVING語句感到困惑,你爲什麼要過濾一個1?如果你刪除它,它會工作嗎? –
HAVING語句我用一個使用它作爲DISTINCT的替代品的例子,因爲這顯然只允許你選擇1列(或者我理解)。 –