回答編集履歴

3

追記

2019/01/12 10:19

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -7,6 +7,8 @@
7
7
  c.column_6 < 21は結合条件ではないような。
8
8
 
9
9
  だとするとCの抽出に含めた方が関係は崩さないですみそうですけど。
10
+
11
+ ※結果が変わる(取得が多くなる)ならそもそも外部結合じゃなかったということで
10
12
 
11
13
  ```SQL
12
14
 

2

修正

2019/01/12 10:19

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -36,8 +36,4 @@
36
36
 
37
37
  on b.column_3 = c.column_3
38
38
 
39
- where
40
-
41
- c.column_6 < 21
42
-
43
39
  ```

1

追記

2019/01/12 10:03

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1,6 +1,12 @@
1
1
  元のSQLの関係を再現すると以下になります。
2
2
 
3
3
  ※bとcの関係は確認した方が良いですね。
4
+
5
+ 追記&修正
6
+
7
+ c.column_6 < 21は結合条件ではないような。
8
+
9
+ だとするとCの抽出に含めた方が関係は崩さないですみそうですけど。
4
10
 
5
11
  ```SQL
6
12
 
@@ -18,16 +24,20 @@
18
24
 
19
25
  AA as a
20
26
 
21
- left join (select .... from CC) as c
27
+ left join (select .... from CC where column_6 < 21) as c
22
28
 
23
29
  on a.column_3 = c.column_3 and a.column_4 = c.column_4
24
30
 
25
31
  left join (select .... from DD) as d
26
32
 
27
- on c.column_3 = d.column_3 and c.column_4 = d.column_4 and c.column_6 < 21
33
+ on c.column_3 = d.column_3 and c.column_4 = d.column_4
28
34
 
29
35
  right join BB as b
30
36
 
31
37
  on b.column_3 = c.column_3
32
38
 
39
+ where
40
+
41
+ c.column_6 < 21
42
+
33
43
  ```