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

回答編集履歴

1

追記

2017/11/01 05:17

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  結合すると多い件数の方で結果が返却されると考えてください。
2
2
  Aテーブルに対して、複数人の担当者がいるので当然Aテーブルの件数より多い結果になります。
3
3
 
4
- Aテーブルを軸にAテーブルの件数のみとしたい場合には、当然複数の担当者を1件にする必要があります。
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
  ```