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

回答編集履歴

1

LEFT OUTER JOIN ではなくて FULL OUTER JOINを使うほうが一般的なのでそちらに修正しました。

2021/01/12 11:21

投稿

neko_the_shadow
neko_the_shadow

スコア2395

answer CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ```sql
18
18
  SELECT
19
- P.ユーザー名,
19
+ COALESCE(B.ユーザー名, C.ユーザー名),
20
20
  CASE
21
21
  WHEN B.退室時間 IS NULL OR B.退室時間 < C.退室時間 THEN
22
22
  C.退室時間
@@ -29,11 +29,6 @@
29
29
  ELSE
30
30
  'テーブルBから取得'
31
31
  END AS 備考
32
- FROM (
32
+ FROM B
33
- SELECT ユーザー名 FROM B
34
- UNION
35
- SELECT ユーザー名 FROM C
36
- ) AS P
37
- LEFT OUTER JOIN B ON P.ユーザー名 = B.ユーザー名
38
- LEFT OUTER JOIN C ON P.ユーザー名 = C.ユーザー名
33
+ FULL OUTER JOIN C ON B.ユーザー名 = C.ユーザー名
39
34
  ```