回答編集履歴
1
追記
answer
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
結合すると多い件数の方で結果が返却されると考えてください。
|
|
2
2
|
Aテーブルに対して、複数人の担当者がいるので当然Aテーブルの件数より多い結果になります。
|
|
3
3
|
|
|
4
|
-
Aテーブルを軸にAテーブルの件数のみとしたい場合には、
|
|
4
|
+
Aテーブルを軸にAテーブルの件数のみとしたい場合には、複数の担当者を1件にする必要があります。
|
|
5
|
-
そうすると担当者のうち誰を1件とするかの条件を決め
|
|
5
|
+
そうすると担当者のうち誰を1件とするかの条件を決めなければなりません。
|
|
6
6
|
|
|
7
7
|
以下は、担当者のID(B_ID)が一番小さい人の場合です。
|
|
8
8
|
```SQL
|
|
@@ -14,4 +14,13 @@
|
|
|
14
14
|
on A.A_id = fil_B.A_id
|
|
15
15
|
where A.s_id = 100
|
|
16
16
|
;
|
|
17
|
+
```
|
|
18
|
+
別解
|
|
19
|
+
---
|
|
20
|
+
s_idがテーブルA全体に対して小さな分布であるなら、以下の方が高速かもしれません。
|
|
21
|
+
```SQL
|
|
22
|
+
SELECT A_id, 名前, (select min(B_id) from B where A_ID=A.A_ID) as B_id
|
|
23
|
+
FROM A
|
|
24
|
+
where s_id = 100
|
|
25
|
+
;
|
|
17
26
|
```
|