私はtbl_chatとtbl_postというテーブルを持っています。 tbl_chatは次のように与えられます。グループの最後のレコードを取得する方法は?
|--------------------------------------------------------------------------------|
| chat_id | message | from_user | to_user | post_id |send_date |
|--------------------------------------------------------------------------------|
| 1 | Hi | 23 | A | 35 | 2016-04-01 17:35|
| 2 | Test | 24 | A | 35 | 2016-04-02 01:35|
| 3 | Thut | A | 23 | 35 | 2016-04-02 03:35|
| 4 | test | A | 24 | 35 | 2016-04-02 12:35|
| 5 | Hi | 23 | A | 35 | 2016-04-03 17:35|
|--------------------------------------------------------------------------------|
ここで、チャットテーブルでは、3人のユーザーが互いにやり取りしているのがわかります。管理者(A)、ID = 23、ユーザー= 24のユーザー:
基本的に2つのチャットスレッドがあります。
- 一つのA間と23
- 別のA間と24
私は最後のチャットメッセージで、2つのチャットのスレッドが表示されますクエリをしたいです。 Facebookのチャットリストの場合と同様に、最後のチャットに言及してすべてのチャットスレッドを表示します。
私はこのような質問を書いています。
SELECT * FROM tbl_chat, tbl_post
WHERE tbl_post.post_id = tbl_chat.post_id
AND tbl_post.post_id = '39'
GROUP BY tbl_chat.chat_from
ORDER BY date DESC
クエリに問題があります。まずすべてのチャットを取得し、それをグループ化します。 chat_from
を入力し、それを降順に並べ替えます。
まずグループを作成してからグループを注文します。
また、最初のクエリでは、管理者からの応答メッセージを別のグループとして3つのグループが作成されます。以来、GROUP BY chat_from。
どうすればこの問題を解決できますか?
EDIT: - 誰かがCodeigniterのアクティブレコードでクエリを作成できることに感謝します。
あなたの「日付」はどのタイプですか。 'DATE'だけではなく、' DATETIME'ではないようですか? – Alex
適切な日付データ型を使用して最初に日付を格納します。 – Strawberry
@Strawberry、質問を編集しました。 – Saswat