回答編集履歴
3
調整
test
CHANGED
@@ -74,9 +74,9 @@
|
|
74
74
|
|
75
75
|
WHERE id in(
|
76
76
|
|
77
|
-
SELECT max(id) FROM `tbl_message_pre`
|
77
|
+
SELECT max(id) FROM `tbl_message_pre`
|
78
78
|
|
79
|
-
|
79
|
+
WHERE board_id IN (SELECT id FROM `tbl_board` WHERE user_name_1='田中' OR user_name_2='田中')
|
80
80
|
|
81
81
|
GROUP BY board_id
|
82
82
|
|
2
typo
test
CHANGED
@@ -70,9 +70,9 @@
|
|
70
70
|
|
71
71
|
```SQL
|
72
72
|
|
73
|
-
SELECT * FROM `tbl_message_pre`
|
73
|
+
SELECT * FROM `tbl_message_pre`
|
74
74
|
|
75
|
-
|
75
|
+
WHERE id in(
|
76
76
|
|
77
77
|
SELECT max(id) FROM `tbl_message_pre` WHERE 1
|
78
78
|
|
1
追記
test
CHANGED
@@ -37,3 +37,55 @@
|
|
37
37
|
ORDER BY created_at DESC;
|
38
38
|
|
39
39
|
```
|
40
|
+
|
41
|
+
# 検証
|
42
|
+
|
43
|
+
ざっと検証しました
|
44
|
+
|
45
|
+
まず、田中を含むboard_idを取るのはこう
|
46
|
+
|
47
|
+
```SQL
|
48
|
+
|
49
|
+
SELECT id FROM `tbl_board` WHERE user_name_1='田中' OR user_name_2='田中';
|
50
|
+
|
51
|
+
```
|
52
|
+
|
53
|
+
該当するboard_id毎のmaxのメッセージidをとるのがこう
|
54
|
+
|
55
|
+
```SQL
|
56
|
+
|
57
|
+
SELECT board_id,max(id) FROM `tbl_message_pre`
|
58
|
+
|
59
|
+
WHERE board_id IN (SELECT id FROM `tbl_board` WHERE user_name_1='田中' OR user_name_2='田中')
|
60
|
+
|
61
|
+
GROUP BY board_id;
|
62
|
+
|
63
|
+
```
|
64
|
+
|
65
|
+
※ただし、実際のほしいのはmax(id)だけ
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
maxのメッセージidから全データを抜き出してソートするのがこう
|
70
|
+
|
71
|
+
```SQL
|
72
|
+
|
73
|
+
SELECT * FROM `tbl_message_pre` WHERE 1
|
74
|
+
|
75
|
+
and id in(
|
76
|
+
|
77
|
+
SELECT max(id) FROM `tbl_message_pre` WHERE 1
|
78
|
+
|
79
|
+
AND board_id IN (SELECT id FROM `tbl_board` WHERE user_name_1='田中' OR user_name_2='田中')
|
80
|
+
|
81
|
+
GROUP BY board_id
|
82
|
+
|
83
|
+
)
|
84
|
+
|
85
|
+
ORDER BY created_at DESC;
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
```
|
90
|
+
|
91
|
+
|