回答編集履歴
8
項目名修正
test
CHANGED
@@ -48,15 +48,15 @@
|
|
48
48
|
|
49
49
|
```SQL
|
50
50
|
|
51
|
-
select ac.a_id, ab.b_id, ac.c_id, ac.
|
51
|
+
select ac.a_id, ab.b_id, ac.c_id, ac.name
|
52
52
|
|
53
53
|
from (
|
54
54
|
|
55
|
-
select a.id as a_id, c.id as c_id, c.
|
55
|
+
select a.id as a_id, c.id as c_id, c.name
|
56
56
|
|
57
57
|
from a, c
|
58
58
|
|
59
|
-
group by a.id, c.id, c.
|
59
|
+
group by a.id, c.id, c.name
|
60
60
|
|
61
61
|
) ac left join (
|
62
62
|
|
7
推敲
test
CHANGED
@@ -78,4 +78,4 @@
|
|
78
78
|
|
79
79
|
ポイントになるのは、基準となるものを如何に作り出すかと言う事ですね。
|
80
80
|
|
81
|
-
|
81
|
+
後はその基準に一度に結合する条件を揃える整形をしたものと結合する。
|
6
推敲
test
CHANGED
@@ -76,6 +76,6 @@
|
|
76
76
|
|
77
77
|
```
|
78
78
|
|
79
|
-
ポイントになるのは、基準となるものを
|
79
|
+
ポイントになるのは、基準となるものを如何に作り出すかと言う事ですね。
|
80
80
|
|
81
81
|
あとはその基準に一度に結合する条件を揃える整形をしたものと結合する。
|
5
コメント追記
test
CHANGED
@@ -75,3 +75,7 @@
|
|
75
75
|
|
76
76
|
|
77
77
|
```
|
78
|
+
|
79
|
+
ポイントになるのは、基準となるものをいかに作り出すかと言う事ですね。
|
80
|
+
|
81
|
+
あとはその基準に一度に結合する条件を揃える整形をしたものと結合する。
|
4
追記修正
test
CHANGED
@@ -42,18 +42,36 @@
|
|
42
42
|
|
43
43
|
---
|
44
44
|
|
45
|
-
aとcの直積(full join)を
|
45
|
+
aとcの直積(full join)をグループidと性別でグルーピングしたものを基準に、
|
46
|
+
|
47
|
+
aとbを結合したものに外部結合します。
|
46
48
|
|
47
49
|
```SQL
|
48
50
|
|
49
|
-
select
|
51
|
+
select ac.a_id, ab.b_id, ac.c_id, ac.sex
|
50
52
|
|
51
|
-
from (
|
53
|
+
from (
|
52
54
|
|
53
|
-
le
|
55
|
+
select a.id as a_id, c.id as c_id, c.sex
|
54
56
|
|
55
|
-
o
|
57
|
+
from a, c
|
56
58
|
|
59
|
+
group by a.id, c.id, c.sex
|
60
|
+
|
61
|
+
) ac left join (
|
62
|
+
|
63
|
+
select a.id as a_id, a.b_id, b.c_id
|
64
|
+
|
65
|
+
from A inner join b
|
66
|
+
|
67
|
+
on a.b_id=b.id
|
68
|
+
|
69
|
+
) ab
|
70
|
+
|
71
|
+
on ac.a_id=ab.a_id and ac.c_id=ab.c_id
|
72
|
+
|
57
|
-
order by ac.A_id, a
|
73
|
+
order by ac.A_id, ab.b_id, ac.c_id
|
74
|
+
|
75
|
+
|
58
76
|
|
59
77
|
```
|
3
追記
test
CHANGED
@@ -35,3 +35,25 @@
|
|
35
35
|
2| 4| 1| men
|
36
36
|
|
37
37
|
3| 5| 1| men
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
追記
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
aとcの直積(full join)を行ったものとからBへ生徒のIDと性別で外部結合します。
|
46
|
+
|
47
|
+
```SQL
|
48
|
+
|
49
|
+
select ac.A_id, ac.b_id, ac.c_id, ac.sex
|
50
|
+
|
51
|
+
from (select a.id as a_id, a.b_id, c.id as c_id, c.sex from A full join C ) ac
|
52
|
+
|
53
|
+
left join B
|
54
|
+
|
55
|
+
on ac.b_id = B.id and ac.c_id=b.c_id
|
56
|
+
|
57
|
+
order by ac.A_id, ac.C_id, ac.b_id
|
58
|
+
|
59
|
+
```
|
2
修正
test
CHANGED
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
```
|
22
22
|
|
23
|
+
※サンプルデータだと5件にしかならないので、差分の2行は何がしたいのかな?
|
24
|
+
|
23
25
|
|a_id|b_id|c_id|name
|
24
26
|
|
25
27
|
|--:|--:|--:|--:|
|
@@ -33,7 +35,3 @@
|
|
33
35
|
2| 4| 1| men
|
34
36
|
|
35
37
|
3| 5| 1| men
|
36
|
-
|
37
|
-
Null| null| 2| women
|
38
|
-
|
39
|
-
Null| null| 2| women
|
1
修正
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
on C.id = B.c_id
|
18
18
|
|
19
|
-
order by coalesce(A.id,
|
19
|
+
order by coalesce(A.id, b.id), C.id
|
20
20
|
|
21
21
|
```
|
22
22
|
|