質問編集履歴
1
結合元テーブルのキーがnullの場合にonが紐づかない
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -50,4 +50,46 @@
|
|
|
50
50
|
(1 行)
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
# version:9.6.x
|
|
53
|
+
# version:9.6.x
|
|
54
|
+
|
|
55
|
+
# 補足(解決)情報
|
|
56
|
+
|
|
57
|
+
以下のようにleft join箇所で副問い合わせを行うようにして、
|
|
58
|
+
そこにonで結合を行うことで希望のレコードも抽出できました。
|
|
59
|
+
|
|
60
|
+
直接left join onで記載すると、主レコードの結合キーがnullの場合などに抽出が利かなくなるようです。
|
|
61
|
+
|
|
62
|
+
訂正依頼&御回答いただいた皆様、ありがとうございました。
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
select ...(略),
|
|
66
|
+
b.column1,
|
|
67
|
+
c.column1,
|
|
68
|
+
d.column1
|
|
69
|
+
from table_a as a
|
|
70
|
+
left join (
|
|
71
|
+
select table_b.id,
|
|
72
|
+
table_b.column1,
|
|
73
|
+
...
|
|
74
|
+
from table_b
|
|
75
|
+
where deleted = false
|
|
76
|
+
) b
|
|
77
|
+
on a.b_id = b.id
|
|
78
|
+
left join (
|
|
79
|
+
select table_c.id,
|
|
80
|
+
table_c.column1,
|
|
81
|
+
...
|
|
82
|
+
from table_c
|
|
83
|
+
where deleted = false
|
|
84
|
+
) c
|
|
85
|
+
on a.c_id = c.id
|
|
86
|
+
left join (
|
|
87
|
+
select table_d.id,
|
|
88
|
+
table_d.column1,
|
|
89
|
+
...
|
|
90
|
+
from table_d
|
|
91
|
+
where deleted = false
|
|
92
|
+
) d
|
|
93
|
+
on a.d_id = d.id
|
|
94
|
+
;
|
|
95
|
+
```
|