回答編集履歴
2
コード修正
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
コード修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
こういうのあまりSQLは得意では無いと思いますが、次のような
|
1
|
+
こういうのあまりSQLは得意では無いと思いますが、次のような形で一応動作するように思います。
|
2
2
|
|
3
|
-
|
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.
|
21
|
+
SELECT CONCAT('{',GROUP_CONCAT(jsn.itm SEPARATOR ','),'}') AS json
|
22
22
|
|
23
23
|
FROM (
|
24
24
|
|
25
|
-
SELECT CONCAT(class, ':[', GROUP_CONCAT(
|
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.
|
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
|
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
|
43
|
+
) AS cls
|
44
44
|
|
45
|
-
GROUP BY class
|
45
|
+
GROUP BY cls.class
|
46
46
|
|
47
47
|
) AS jsn
|
48
48
|
|