0

これは、stackoverflow でこれまでで最もばかげた質問に思えるかもしれませんが、なぜそのようなクエリを作成するのか疑問に思っています。

Select e1.Emploee_ID, e1.Departement_ID From Employee e 
Inner join Employee E1 on e.employee_id= e1.Employee_ID
Inner join Departement d on d.dep_id= e1.departement_id

なぜ私たちは従業員に参加しなければならないのですか?私の明らかなクエリは

select e.employee_ID, e.Departement_id from employee e 
inner join  Departement d on d.dep_id= e1.departement_id
4

5 に答える 5

2

内部結合でPKを参照することは冗長です。

通常、同じテーブルに結合して別のレコードにリンクします。たとえば、従業員の上司を参照するFK列がある場合です。

Boss_IDテーブルにnull許容の外部キー列があると仮定しますEmployee

Select e.Employee_ID, boss.Employee_id, d.Departement_ID 
From Employee e  
LEFT OUTER JOIN Employee boss on boss.Employee_ID=e.Boss_ID
INNER JOIN Departement d on d.dep_id= e.departement_id

LEFT OUTER JOINを使用して、上司がいない従業員も取得したことに注意してください。

于 2012-05-08T08:03:55.533 に答える
0

employee_idがPKの場合 は意味がありませんが、そうでない場合は2つのクエリが異なる結果を返します。

最初のクエリはNULLのemployee_idを返さず、N回出現する複数のエントリに対してN^2の結果を返します。

于 2012-05-08T08:02:18.700 に答える
0

さらに簡単なのはこれです:

従業員e、Departement dからe.employee_ID、d.dep_nameを選択します。ここでd.dep_id = e.departement_id

于 2012-05-08T08:05:02.760 に答える
0

私が見ることができるもの。この結合は必要ありません。

Inner join Employee E1 on e.employee_id= e1.Employee_ID

2 つのクエリは同じ結果を返します。テーブルJOINの上で2回するポイントが見えません。Employee

于 2012-05-08T07:58:09.143 に答える