質問編集履歴
2
テーブルの設計について追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,10 +10,14 @@
|
|
10
10
|
...(その他のカラム)
|
11
11
|
|
12
12
|
comments(テーブル名)
|
13
|
+
・id
|
13
14
|
・chatspace_id
|
14
15
|
・body
|
15
16
|
・created_at
|
16
17
|
...(その他のカラム)
|
18
|
+
|
19
|
+
各chatspaceに複数のコメントが投稿されるという設計になっています。
|
20
|
+
(chatspace_idが同一のcommentsのレコードが複数存在する。)
|
17
21
|
|
18
22
|
### 実現したいこと
|
19
23
|
LINEのトーク一覧画面のような表示を作るために、
|
1
「最新」の定義と、試したことを記載しました。ご指摘ありがとうございます。他にも不備があればご指摘いただければ幸いです。
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,10 +18,30 @@
|
|
18
18
|
### 実現したいこと
|
19
19
|
LINEのトーク一覧画面のような表示を作るために、
|
20
20
|
SQLで各chatspaceの情報(全てのカラム)と、
|
21
|
+
各chatspace中(comments.chatspace_idが同じレコード)の最新(comments.created_atが最大のレコード)の
|
21
|
-
|
22
|
+
comments.bodyとcomments.created_at AS commented_atを取得したいです。
|
22
23
|
|
23
|
-
JOINやサブクエリ等、関係しそうな情報
|
24
|
+
JOINやサブクエリ等、関係しそうな情報を調べ試したのですが、実現できなかったのでご教示いただきたいです。
|
24
25
|
よろしくお願いいたします。
|
26
|
+
|
27
|
+
### 試したこと
|
28
|
+
・commentsテーブルで、GROUP BY chatspace_idで、idとMAX(created_at)を取得する。次に、これをサブクエリとしてchatspaceの情報を取得。
|
29
|
+
→
|
30
|
+
サブクエリの、
|
31
|
+
```SQL
|
32
|
+
SELECT chatspace_id, body, MAX(created_at) FROM comments GROUP BY chatspace_id;
|
33
|
+
```
|
34
|
+
の部分で、sql=only_full_group_byが必要というエラーが発生。
|
35
|
+
(bodyを指定しなければ取得可能。)
|
36
|
+
|
37
|
+
・INNER JOINで結合する
|
38
|
+
→comments.created_atが最大のレコードのみを取得することができない(GROUP BYを使うとsql=only_full_group_byが必要というエラーが発生)
|
39
|
+
|
40
|
+
・サブクエリとしてcommentsテーブルを取得しする。このときにWHERE句で>(greater than sign)を使って最大値のみにする。
|
41
|
+
→
|
42
|
+
うまくいかなかったのですが、
|
43
|
+
参考にしたサイトを見失ってしまい、エラーを含め再現できなくなってしまいました。
|
44
|
+
(docker上で試し、downしてしまったのでログも辿れませんでした)
|
25
45
|
|
26
46
|
### 補足情報(FW/ツールのバージョンなど)
|
27
47
|
mysql
|