私はAndroidのSQLiteデータベースを使用しています。メッセージが入ったテーブルがあります。各メッセージのメッセージはContactId
です。各ContactId
に関連付けられた最新のメッセージのリストを取得する必要があります。SQLiteクエリ:別個の連絡先ごとに最新の行を選択
私のクエリは、これまでに次のようになります。
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);
を:
near "ContactId": syntax error: , while compiling: SELECT * FROM messages GROUP_BY ContactId HAVING (COUNT(ContactId) = 1) ORDER_BY MessageTime DESC
ここでそれが助け場合には、テーブル定義があります:私は、クエリを実行すると
SELECT * FROM messages GROUP_BY ContactId HAVING (COUNT(ContactId) = 1) ORDER_BY MessageTime DESC
をしかし、私はこの例外を取得します
変数に列名があるので、私はStringBuilderクラスを使用していますが、それは出力します。 –
HAVINGステートメントで混乱していますが、なぜ1のカウントでフィルタリングしていますか?あなたはそれを削除する場合は動作しますか? –
HAVINGステートメントは、DISTINCTの代わりに使用する例を取り上げました。明らかに1列しか選択できないためです(または理解しています)。 –