回答編集履歴

2

コード修正

2016/10/17 17:50

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -44,6 +44,8 @@
44
44
 
45
45
  GROUP BY cls.class
46
46
 
47
+ ORDER BY cls.class
48
+
47
49
  ) AS jsn
48
50
 
49
51
  ```

1

コード修正

2016/10/17 17:50

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -1,6 +1,6 @@
1
- こういうのあまりSQLは得意では無いと思いますが、次のようなで一応動作するように思います。
1
+ こういうのあまりSQLは得意では無いと思いますが、次のようなで一応動作するように思います。
2
2
 
3
- 一応[paiza](https://paiza.io/)で動作確認済み
3
+ [paiza](https://paiza.io/)で動作確認済み
4
4
 
5
5
  ```SQL
6
6
 
@@ -18,31 +18,31 @@
18
18
 
19
19
 
20
20
 
21
- SELECT CONCAT('{',GROUP_CONCAT(jsn.cls SEPARATOR ','),'}') AS json
21
+ SELECT CONCAT('{',GROUP_CONCAT(jsn.itm SEPARATOR ','),'}') AS json
22
22
 
23
23
  FROM (
24
24
 
25
- SELECT CONCAT(class, ':[', GROUP_CONCAT(glp.ids SEPARATOR ','), ']') AS cls
25
+ SELECT CONCAT(class, ':[', GROUP_CONCAT(cls.itm SEPARATOR ','), ']') AS itm
26
26
 
27
27
  FROM (
28
28
 
29
- SELECT class, CONCAT('{', GROUP_CONCAT(dat.d SEPARATOR ','), '}') AS ids
29
+ SELECT class, CONCAT('{', GROUP_CONCAT(dat.itm SEPARATOR ','), '}') AS itm
30
30
 
31
31
  FROM (
32
32
 
33
- SELECT class, id, CONCAT('id:',id,',studentnum:',studentnum) AS d
33
+ SELECT class, id, CONCAT('id:',id,',studentnum:',studentnum) AS itm
34
34
 
35
35
  FROM tbl
36
36
 
37
37
  ) AS dat
38
38
 
39
- GROUP BY class, id
39
+ GROUP BY dat.class, dat.id
40
40
 
41
- ORDER BY id
41
+ ORDER BY dat.id
42
42
 
43
- ) AS glp
43
+ ) AS cls
44
44
 
45
- GROUP BY class
45
+ GROUP BY cls.class
46
46
 
47
47
  ) AS jsn
48
48