teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/09/23 22:10

投稿

Orlofsky
Orlofsky

スコア16419

answer CHANGED
@@ -1,4 +1,48 @@
1
1
  WHEREの最後に
2
2
  > B.group_id= 'grp';
3
3
 
4
- とありますが、company_t_map_accounts にはデータが1件もないので、SELECT されるデータは1件もないかと。
4
+ とありますが、company_t_map_accounts にはデータが1件もないので、SELECT されるデータは1件もないかと。
5
+
6
+
7
+ 追記
8
+ Oracle での実行結果
9
+ ```SQL
10
+ SQL> SET NULL null
11
+ SQL> SELECT
12
+ 2 A.account_id
13
+ 3 , C.group_account_id
14
+ 4 FROM company_m_accounts A -- ※ Oracle ではここで AS は記述できない
15
+ 5 LEFT OUTER JOIN company_t_map_accounts B -- ※
16
+ 6 ON A.company_id = B.company_id
17
+ 7 AND A.account_id = B.group_account_id
18
+ 8 LEFT OUTER JOIN group_m_accounts C -- ※
19
+ 9 ON B.group_id = C.group_id
20
+ 10 AND A.account_id = B.group_account_id
21
+ 11 WHERE A.company_id = 'com'
22
+ 12 AND B.group_id = 'grp';
23
+
24
+ レコードが選択されませんでした。
25
+
26
+ SQL> -- AND B.group_id = 'grp' を削ると、
27
+ SQL> SELECT
28
+ 2 A.account_id
29
+ 3 , C.group_account_id
30
+ 4 FROM company_m_accounts A
31
+ 5 LEFT OUTER JOIN company_t_map_accounts B
32
+ 6 ON A.company_id = B.company_id
33
+ 7 AND A.account_id = B.group_account_id
34
+ 8 LEFT OUTER JOIN group_m_accounts C
35
+ 9 ON B.group_id = C.group_id
36
+ 10 AND A.account_id = B.group_account_id
37
+ 11 WHERE A.company_id = 'com';
38
+
39
+ ACCOUNT_ID GROUP_ACCO
40
+ ---------- ----------
41
+ 1000001 null
42
+ 1000002 null
43
+ 1000003 null
44
+ 1100001 null
45
+ 1110000 null
46
+
47
+ SQL>
48
+ ```