回答編集履歴

3

推敲

2021/02/24 01:52

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -32,6 +32,8 @@
32
32
 
33
33
  where 合否=0
34
34
 
35
+ group by 氏名, 教科ID
36
+
35
37
  ) t2
36
38
 
37
39
  on t2.氏名=t1.氏名 and t2.教科ID=t1.教科ID

2

追記

2021/02/24 01:52

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -19,3 +19,25 @@
19
19
  )
20
20
 
21
21
  ```
22
+
23
+ **相関副問合せ**を使用しない場合は以下の様になります。
24
+
25
+ ```SQL
26
+
27
+ select t1.*
28
+
29
+ from テーブル t1 left join (
30
+
31
+ select 氏名, 教科ID from テーブル
32
+
33
+ where 合否=0
34
+
35
+ ) t2
36
+
37
+ on t2.氏名=t1.氏名 and t2.教科ID=t1.教科ID
38
+
39
+ where t2.氏名 is null
40
+
41
+ ```
42
+
43
+ SQLServerではこちらの方がコストは低いかもしれません。

1

推敲

2021/02/24 01:51

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -1,4 +1,4 @@
1
- > 教科(理科)内の科目(化学、物理、生物)内で一つでも不合格(0)な科目がある場合
1
+ > 教科(理科)内の科目(化学、物理、生物)内で一つでも不合格(0)な科目がある場合 その教科はSELECTしない
2
2
 
3
3
 
4
4