特定のユーザーがejabberdアーカイブテーブルからチャットしたすべてのユーザーで最後のメッセージを注文したいと考えています。私が使用している各グループから最新のレコードを取得
のフィールドは、これらの
- ID(メッセージID)
- ユーザ名(ユーザ名コピー)(とチャットしているユーザー)
- bare_peer
- TXT(テキストチャットです)
- のcreated_at(時間が作成した)
私はTRYIよ何実現するには、そのようなものですが、bare_peer
でユーザー名を1_usernode
とし、最後のメッセージのみをグループ化する必要があります。 私はすでに多くのクエリをテストしましたが、どれもうまくいきませんでした。 これは私が試した最初のクエリです。
SELECT id, username, bare_peer, txt FROM archive where
username = '1_usernode' GROUP BY bare_peer ORDER BY created_at DESC;
これは出力です。
+------+------------+-------------------------------------------------------+---------------------+
| id | username | bare_peer | txt | created_at |
+------+------------+------------------------+------------------------------+---------------------+
| 1095 | 1_usernode | [email protected] | Hello !!! | 2016-07-17 21:15:17 |
| 1034 | 1_usernode | [email protected] | hey sup ? | 2016-07-13 22:40:29 |
| 1107 | 1_usernode | [email protected] | oi | 2016-07-18 00:09:28 |
| 1078 | 1_usernode | [email protected] | Hello this is just a Test!!! | 2016-07-15 16:30:50 |
| 1101 | 1_usernode | [email protected] | hey | 2016-07-18 00:05:55 |
| 1084 | 1_usernode | [email protected] | Hey how are you? | 2016-07-15 19:36:44 |
| 1085 | 1_usernode | [email protected] | Hey how are you doing ? | 2016-07-17 19:20:00 |
created_at列がdatetimeデータ型に設定されていますか? –
サンプル出力のすべての 'bare_peer'は一意なので、あなたのクエリに正しく従っているようです。あなたは 'username'でグループ化するつもりでしたか? – Sablefoste
入力データと期待される出力を見せてくれれば助かります。たぶん、SQLフィドルを作成する – PaulF