0

n対mの関係を持つテーブル従業員、テーブルスポーツがあります。つまり、もう1つのテーブルもあります。テーブルemp_sportとしましょう

テーブル従業員

emp_id emp_name
------------------
e1 name1
e2 name2
e3 name3
e4 name4

テーブルスポーツ
スポーツ ID スポーツ名
----------------------
sp1 spName1
sp2 spName2
sp3 spName3

テーブル emp_sport
emp_id スポーツID
-------------------
e1 sp1
e1 sp2
e1 sp3
e2 sp2

こんな感じで従業員からデータを選択したい

select distinct(e.emp_id), e.emp_name 
from employee e 
where e.emp_id not in (select sp.emp_id from sport_emp sp where sp.sport_id = 'sp1')

結果、私は持っています

e2 name2
e3 name3
e4 name4

問題は、従業員テーブルと emp_sport に非常に大きなデータがある場合、クエリが非常に遅くなることです。

4

1 に答える 1