私は2つのテーブルEmployeeとsalary Employee => ID、Name Fieldsを持っています
給与 => Sid, EId(Foriegn key) , Month, Salary
Employee
ID Name
1 a
2 b
3 c
Salary
Sid Eid Month Salary
1 1 Jan 10
2 2 Jan 10
3 3 Jan 10
4 1 Feb 10
5 3 Feb 10
6 1 Mar 10
7 2 Mar 10
最適化が必要なため、3月に給与を受け取っていない従業員を検索し、結合のみを使用する必要があります
サブクエリを次のように使用して検索ステートメントを持っています
select E.Name from Employee where E.ID not in (Select EID from salary where month ='mar' );
最適化を目的として、これを結合するように変換するように求められました
使ってみた
Select E.Name from Employee E left join Salary S on E.ID = S.EID where S.EID = null;
しかし、これは私が望んでいたことではありません。3 月に給与が支払われなかった従業員のみが必要です。