回答編集履歴
3
けっか
answer
CHANGED
@@ -71,4 +71,11 @@
|
|
71
71
|
group by post_id
|
72
72
|
with rollup
|
73
73
|
) as sub2 using(post_id)
|
74
|
-
```
|
74
|
+
```
|
75
|
+
- 結果
|
76
|
+
|
77
|
+
|post_id|名前|件名1|参加1|件名2|参加2|
|
78
|
+
|--:|:--|:--|--:|:--|--:|
|
79
|
+
|1|山田太郎|参加|1|不参加|0|
|
80
|
+
|2|田中花子|参加|1|参加|1|
|
81
|
+
|NULL|NULL|NULL|2|NULL|1|
|
2
むりやり
answer
CHANGED
@@ -30,4 +30,45 @@
|
|
30
30
|
(1,'役員会議','山田太郎','参加','不参加'),
|
31
31
|
(2,'役員会議','田中花子','参加','参加'),
|
32
32
|
(3,'合同イベント','鈴木一郎','不参加','不参加');
|
33
|
+
```
|
34
|
+
|
35
|
+
# 無理やりやってみる
|
36
|
+
```SQL
|
37
|
+
create table at_postmeta(post_id int,meta_key varchar(10),meta_value varchar(10));
|
38
|
+
insert into at_postmeta values
|
39
|
+
(1,'イベント名','役員会議'),
|
40
|
+
(1,'名前','山田太郎'),
|
41
|
+
(1,'件名1','参加'),
|
42
|
+
(1,'件名2','不参加'),
|
43
|
+
(2,'イベント名','役員会議'),
|
44
|
+
(2,'名前','田中花子'),
|
45
|
+
(2,'件名1','参加'),
|
46
|
+
(2,'件名2','参加'),
|
47
|
+
(3,'イベント名','合同イベント'),
|
48
|
+
(3,'名前','鈴木一郎'),
|
49
|
+
(3,'件名1','不参加'),
|
50
|
+
(3,'件名2','不参加');
|
51
|
+
```
|
52
|
+
- 検索
|
53
|
+
```SQL
|
54
|
+
select post_id,名前,件名1,参加1,件名2,参加2
|
55
|
+
from (
|
56
|
+
select t1.post_id,
|
57
|
+
group_concat(case meta_key when "名前" then meta_value else null end) 名前,
|
58
|
+
group_concat(case meta_key when "件名1" then meta_value else null end) 件名1,
|
59
|
+
group_concat(case meta_key when "件名2" then meta_value else null end) 件名2
|
60
|
+
from at_postmeta as t1
|
61
|
+
inner join (select post_id from at_postmeta where meta_key='イベント名' and meta_value='役員会議') as t2
|
62
|
+
on t1.post_id=t2.post_id
|
63
|
+
group by post_id
|
64
|
+
) as sub1 right join (
|
65
|
+
select t1.post_id,
|
66
|
+
sum((meta_key="件名1")*(meta_value="参加")) 参加1,
|
67
|
+
sum((meta_key="件名2")*(meta_value="参加")) 参加2
|
68
|
+
from at_postmeta as t1
|
69
|
+
inner join (select post_id from at_postmeta where meta_key='イベント名' and meta_value='役員会議') as t2
|
70
|
+
on t1.post_id=t2.post_id
|
71
|
+
group by post_id
|
72
|
+
with rollup
|
73
|
+
) as sub2 using(post_id)
|
33
74
|
```
|
1
調整
answer
CHANGED
@@ -17,4 +17,17 @@
|
|
17
17
|
↓↓↓
|
18
18
|
SUM(meta_value = '$sanka') AS cnt
|
19
19
|
```
|
20
|
-
だと思います
|
20
|
+
だと思います
|
21
|
+
|
22
|
+
# テーブルの設計から
|
23
|
+
```SQL
|
24
|
+
create table tbl(id int primary key,
|
25
|
+
イベント名 varchar(10),
|
26
|
+
名前 varchar(10),
|
27
|
+
件名1 varchar(10),
|
28
|
+
件名2 varchar(10));
|
29
|
+
insert into tbl values
|
30
|
+
(1,'役員会議','山田太郎','参加','不参加'),
|
31
|
+
(2,'役員会議','田中花子','参加','参加'),
|
32
|
+
(3,'合同イベント','鈴木一郎','不参加','不参加');
|
33
|
+
```
|