回答編集履歴
1
HAVING句で書き直し(サブクエリだと遅いため)
test
CHANGED
@@ -1,21 +1,23 @@
|
|
1
|
+
※HAVING句を使った方法に書き直し
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
実現方法はいくつかありますが、たとえば del_flg がすべて 1 ということは、言い換えれば del_flg が 0 になっているレコードが1つもない product_id を検索すればよいので、
|
2
6
|
|
3
7
|
|
4
8
|
|
5
9
|
```sql
|
6
10
|
|
7
|
-
SELECT product_id FROM dtb_products
|
11
|
+
SELECT product_id FROM dtb_products
|
8
12
|
|
9
|
-
INNER JOIN dtb_products_class USING(product_id)
|
13
|
+
INNER JOIN dtb_products_class USING(product_id)
|
10
14
|
|
11
|
-
|
15
|
+
GROUP BY product_id
|
12
16
|
|
13
|
-
(SELECT product_id FROM dtb_products_class WHERE del_flg = 0)
|
14
|
-
|
15
|
-
G
|
17
|
+
HAVING MIN(del_flg) = 1;
|
16
18
|
|
17
19
|
```
|
18
20
|
|
19
21
|
|
20
22
|
|
21
|
-
という感じで
|
23
|
+
という感じで、各 product_id における del_flg の最低値が 1 (=0が存在しない) という条件で抽出してあげればよいと思います。
|