質問編集履歴

8

分かり易く変更

2016/07/29 16:08

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -30,61 +30,61 @@
30
30
 
31
31
  chat_messaテーブルのデータ
32
32
 
33
- +---------+-------------+
33
+ +---------+-------------------------+
34
34
 
35
- | chat_id | updated_date|
35
+ | chat_id | updated_date |
36
36
 
37
- +---------+-------------+
37
+ +---------+-------------------------+
38
38
 
39
- | 1 | 2016-07-26 |
39
+ | 1 | 2016-07-24 11:44:27 |
40
40
 
41
- | 1 | 2016-07-27 |
41
+ | 1 | 2016-07-24 19:42:42 |
42
42
 
43
- | 2 | 2016-07-28 |
43
+ | 2 | 2016-07-25 10:27:37 |
44
44
 
45
- | 2 | 2016-07-30 |
45
+ | 2 | 2016-07-29 13:45:59 |
46
46
 
47
- | 3 | 2016-07-29 |
47
+ | 3 | 2016-07-27 00:13:33 |
48
48
 
49
- | 3 | 2016-07-31 |
49
+ | 3 | 2016-07-29 08:13:13 |
50
50
 
51
- +---------+-------------+
51
+ +---------+-------------------------+
52
52
 
53
53
 
54
54
 
55
55
  結合後のデータでは、下記のように取得したいのですが、
56
56
 
57
- +----+-------------+---------+-------------+
57
+ +----+-------------+---------+-------------------------+
58
58
 
59
- | id | messa | chat_id | updated_date|
59
+ | id | messa | chat_id | updated_date |
60
60
 
61
- +----+-------------+---------+-------------+
61
+ +----+-------------+---------+-------------------------+
62
62
 
63
- | 3 | さようなら | 3 | 2016-07-31 |
63
+ | 3 | さようなら | 3 | 2016-07-29 08:13:13 |
64
64
 
65
- | 2 | こんばんは | 2 | 2016-07-30 |
65
+ | 2 | こんばんは | 2 | 2016-07-29 13:45:59 |
66
66
 
67
- | 1 | こんにちは | 1 | 2016-07-27 |
67
+ | 1 | こんにちは | 1 | 2016-07-24 19:42:42 |
68
68
 
69
- +----+-------------+---------+-------------+
69
+ +----+-------------+---------+-------------------------+
70
70
 
71
71
 
72
72
 
73
73
  order byとgroup byを併用すると、下記のようになってしまします。
74
74
 
75
- +----+-------------+---------+-------------+
75
+ +----+-------------+---------+-------------------------+
76
76
 
77
- | id | messa | chat_id | updated_date|
77
+ | id | messa | chat_id | updated_date |
78
78
 
79
- +----+-------------+---------+-------------+
79
+ +----+-------------+---------+-------------------------+
80
80
 
81
- | 3 | さようなら | 3 | 2016-07-29 |
81
+ | 3 | さようなら | 3 | 2016-07-27 00:13:33 |
82
82
 
83
- | 2 | こんばんは | 2 | 2016-07-28 |
83
+ | 2 | こんばんは | 2 | 2016-07-25 10:27:37 |
84
84
 
85
- | 1 | こんにちは | 1 | 2016-07-26 |
85
+ | 1 | こんにちは | 1 | 2016-07-24 11:44:27 |
86
86
 
87
- +----+-------------+---------+-------------+
87
+ +----+-------------+---------+-------------------------+
88
88
 
89
89
 
90
90
 

7

分かり易く変更

2016/07/29 16:08

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -36,11 +36,17 @@
36
36
 
37
37
  +---------+-------------+
38
38
 
39
+ | 1 | 2016-07-26 |
40
+
39
41
  | 1 | 2016-07-27 |
40
42
 
41
43
  | 2 | 2016-07-28 |
42
44
 
45
+ | 2 | 2016-07-30 |
46
+
43
47
  | 3 | 2016-07-29 |
48
+
49
+ | 3 | 2016-07-31 |
44
50
 
45
51
  +---------+-------------+
46
52
 
@@ -54,9 +60,9 @@
54
60
 
55
61
  +----+-------------+---------+-------------+
56
62
 
57
- | 3 | さようなら | 3 | 2016-07-29 |
63
+ | 3 | さようなら | 3 | 2016-07-31 |
58
64
 
59
- | 2 | こんばんは | 2 | 2016-07-28 |
65
+ | 2 | こんばんは | 2 | 2016-07-30 |
60
66
 
61
67
  | 1 | こんにちは | 1 | 2016-07-27 |
62
68
 
@@ -72,11 +78,11 @@
72
78
 
73
79
  +----+-------------+---------+-------------+
74
80
 
75
- | 1 | こんにちは | 1 | 2016-07-27 |
81
+ | 3 | さようなら | 3 | 2016-07-29 |
76
82
 
77
83
  | 2 | こんばんは | 2 | 2016-07-28 |
78
84
 
79
- | 3 | さようなら | 3 | 2016-07-29 |
85
+ | 1 | こんにちは | 1 | 2016-07-26 |
80
86
 
81
87
  +----+-------------+---------+-------------+
82
88
 

6

分かり易く変更

2016/07/29 14:31

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  +----+-------------+
16
16
 
17
- | id | messa |
17
+ | id | messa |
18
18
 
19
19
  +----+-------------+
20
20
 

5

分かり易く変更

2016/07/29 13:52

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  +----+-------------+
16
16
 
17
- | id | messa |
17
+ | id | messa |
18
18
 
19
19
  +----+-------------+
20
20
 

4

分かり易く変更

2016/07/29 13:51

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- 結合後のデータ
49
+ 結合後のデータでは、下記のように取得したいのですが、
50
50
 
51
51
  +----+-------------+---------+-------------+
52
52
 
@@ -59,6 +59,24 @@
59
59
  | 2 | こんばんは | 2 | 2016-07-28 |
60
60
 
61
61
  | 1 | こんにちは | 1 | 2016-07-27 |
62
+
63
+ +----+-------------+---------+-------------+
64
+
65
+
66
+
67
+ order byとgroup byを併用すると、下記のようになってしまします。
68
+
69
+ +----+-------------+---------+-------------+
70
+
71
+ | id | messa | chat_id | updated_date|
72
+
73
+ +----+-------------+---------+-------------+
74
+
75
+ | 1 | こんにちは | 1 | 2016-07-27 |
76
+
77
+ | 2 | こんばんは | 2 | 2016-07-28 |
78
+
79
+ | 3 | さようなら | 3 | 2016-07-29 |
62
80
 
63
81
  +----+-------------+---------+-------------+
64
82
 

3

分かり易く変更

2016/07/29 13:48

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,60 @@
7
7
  テーブルは、「chat」「chat_messa」と言うテーブルを作りました。
8
8
 
9
9
  「chat」の「id」と「chat_messa」の 「chat_id」で結合しました。
10
+
11
+
12
+
13
+ chatテーブルのデータ
14
+
15
+ +----+-------------+
16
+
17
+ | id | messa |
18
+
19
+ +----+-------------+
20
+
21
+ | 1 | こんにちは |
22
+
23
+ | 2 | こんばんは |
24
+
25
+ | 3 | さようなら |
26
+
27
+ +----+-------------+
28
+
29
+
30
+
31
+ chat_messaテーブルのデータ
32
+
33
+ +---------+-------------+
34
+
35
+ | chat_id | updated_date|
36
+
37
+ +---------+-------------+
38
+
39
+ | 1 | 2016-07-27 |
40
+
41
+ | 2 | 2016-07-28 |
42
+
43
+ | 3 | 2016-07-29 |
44
+
45
+ +---------+-------------+
46
+
47
+
48
+
49
+ 結合後のデータ
50
+
51
+ +----+-------------+---------+-------------+
52
+
53
+ | id | messa | chat_id | updated_date|
54
+
55
+ +----+-------------+---------+-------------+
56
+
57
+ | 3 | さようなら | 3 | 2016-07-29 |
58
+
59
+ | 2 | こんばんは | 2 | 2016-07-28 |
60
+
61
+ | 1 | こんにちは | 1 | 2016-07-27 |
62
+
63
+ +----+-------------+---------+-------------+
10
64
 
11
65
 
12
66
 

2

分かり易く変更

2016/07/29 13:45

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  テーブルの内部結合なしなら、これで出来ました。
28
28
 
29
- select * from (select * from chat_messa order by updated_date desc) A group by chat_id
29
+ select * from (select * from chat_messa order by updated_date desc) as subquery group by chat_id order by id desc
30
30
 
31
31
 
32
32
 
@@ -42,7 +42,7 @@
42
42
 
43
43
  テーブルの内部結合なしなら、これで出来ました。
44
44
 
45
- select * from (select * from chat_messa order by updated_date desc) A group by chat_id
45
+ select * from (select * from chat_messa order by updated_date desc) as subquery group by chat_id order by id desc
46
46
 
47
47
 
48
48
 

1

分かり易いように変更

2016/07/29 13:27

投稿

hiroppii
hiroppii

スコア38

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- mysqlで、テーブルの内部結合をし、カラムでグループ化し、最新レコードを取得したいです。
3
+ mysqlで内部結合をし、order byとgroup byを併用す書き方が知りたいです。
4
4
 
5
5
 
6
6