回答編集履歴
2
追記
test
CHANGED
@@ -23,3 +23,81 @@
|
|
23
23
|
対象人数から提出済み数を引くだけでよいかもしれません。
|
24
24
|
|
25
25
|
対象人数は普通別途ユーザーテーブルなどで管理していると思います。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
# 追記
|
30
|
+
|
31
|
+
考え方からするとkadaiテーブルで提示されている処理は
|
32
|
+
|
33
|
+
kadaiを管理するのではなくkadai_userの中間テーブルで、別途kadaiとuserを
|
34
|
+
|
35
|
+
管理するテーブルがあるとよりSQL的になります
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
参考)
|
40
|
+
|
41
|
+
課題=3つ、ユーザー=7人いたとして、その連携状態が
|
42
|
+
|
43
|
+
課題とユーザーの組み合わせ
|
44
|
+
|
45
|
+
(1,1),(1,2),(1,3),(1,4),(2,1),(2,2),(2,4),(2,5),(3,1),(3,5),(3,6)
|
46
|
+
|
47
|
+
について提出済みとします
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
```SQL
|
52
|
+
|
53
|
+
create table kadai_user(
|
54
|
+
|
55
|
+
id int(11) primary key auto_increment,
|
56
|
+
|
57
|
+
kadai_id int(11),
|
58
|
+
|
59
|
+
user_id int(11),
|
60
|
+
|
61
|
+
teisyutsu int(11) default 0
|
62
|
+
|
63
|
+
);
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
insert into kadai_user(kadai_id,user_id)
|
68
|
+
|
69
|
+
values
|
70
|
+
|
71
|
+
(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),
|
72
|
+
|
73
|
+
(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),
|
74
|
+
|
75
|
+
(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(3,7);
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
update kadai_user set teisyutsu=1
|
80
|
+
|
81
|
+
where concat(kadai_id,",",user_id) in (
|
82
|
+
|
83
|
+
"1,1","1,2","1,3","1,4",
|
84
|
+
|
85
|
+
"2,1","2,2","2,4","2,5",
|
86
|
+
|
87
|
+
"3,1","3,5","3,6");
|
88
|
+
|
89
|
+
```
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
- 集計
|
94
|
+
|
95
|
+
```SQL
|
96
|
+
|
97
|
+
select kadai_id,sum(teisyutsu=1) as 提出済,sum(teisyutsu=0) as 未提出
|
98
|
+
|
99
|
+
from kadai_user
|
100
|
+
|
101
|
+
group by kadai_id
|
102
|
+
|
103
|
+
```
|
1
調整
test
CHANGED
@@ -6,6 +6,20 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
+
もし、上記のような運用方法なら
|
10
|
+
|
11
|
+
```SQL
|
12
|
+
|
13
|
+
SELECT kadai_num,sum(teisyutsu = 1) as 提出数,sum(hyoka IS NULL) as 未提出数
|
14
|
+
|
15
|
+
FROM kadai
|
16
|
+
|
17
|
+
GROUP BY kadai_num
|
18
|
+
|
19
|
+
```
|
20
|
+
|
21
|
+
|
22
|
+
|
9
23
|
対象人数から提出済み数を引くだけでよいかもしれません。
|
10
24
|
|
11
25
|
対象人数は普通別途ユーザーテーブルなどで管理していると思います。
|