質問編集履歴

2

先ほどの質問が解決し新たな質問が生じたので修正

2020/05/11 14:53

投稿

mousuguharudesu
mousuguharudesu

スコア8

test CHANGED
File without changes
test CHANGED
@@ -58,11 +58,27 @@
58
58
 
59
59
  ```
60
60
 
61
- 上のように「それがNULLじゃなければ」という条件をやめて、下のように「それ以外がNULLなら」という条件を考えてみたのですができずほかに思いつけなかったので質問させて頂きました…。
61
+ 上のように「それがNULLじゃなければ」という条件をやめて、下のように「それ以外がNULLなら」という条件でできたのですが、
62
62
 
63
63
 
64
64
 
65
+ しかしこれでは例えば、posts、users、products以外に今後othersという種類が増えた場合
66
+
67
+
68
+
69
+ WHEN ar.attach_user_id IS NULL AND ar.attach_post_id IS NULL
70
+
71
+
72
+
73
+ WHEN ar.attach_user_id IS NULL AND ar.attach_post_id IS NULL AND ar.attach_other_id IS NULL
74
+
75
+
76
+
77
+ のようになってしまい、WHENの式がどんどん長くなることに違和感を覚えています。
78
+
79
+
80
+
65
- 宜しくお願い致します。
81
+ 良い方法がございましたら宜しくお願い致します。
66
82
 
67
83
  ```sql
68
84
 
@@ -74,13 +90,13 @@
74
90
 
75
91
 
76
92
 
77
- ELSE ar.attach_user_id IS NULL AND ar.attach_post_id IS NULL
93
+ WHEN ar.attach_user_id IS NULL AND ar.attach_post_id IS NULL
78
94
 
79
95
  THEN ar.attach_product_id
80
96
 
81
97
 
82
98
 
83
- ELSE ar.attach_product_id IS NULL AND ar.attach_post_id IS NULL
99
+ WHEN ar.attach_product_id IS NULL AND ar.attach_post_id IS NULL
84
100
 
85
101
  THEN ar.attach_user_id
86
102
 

1

余計なコードを削除

2020/05/11 14:53

投稿

mousuguharudesu
mousuguharudesu

スコア8

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  # 基本情報
26
26
 
27
- base_t.post_id AS content_id
27
+ post_id AS content_id
28
28
 
29
29
 
30
30
 
@@ -36,11 +36,15 @@
36
36
 
37
37
  AS attach_content_id
38
38
 
39
+
40
+
39
41
  ,CASE WHEN ar.attach_product_id IS NOT NULL
40
42
 
41
43
  THEN ar.attach_product_id ELSE NULL END
42
44
 
43
45
  AS attach_content_id
46
+
47
+
44
48
 
45
49
  ,CASE WHEN ar.attach_user_id IS NOT NULL
46
50