1

暗黙の JOINS が時代遅れであることは理解していますが、宿題用です。彼の暗黙的な結合の例はすべて 2 つのテーブルのみを結合しており、3 を結合する例はどこにもありません。

SELECT Name 
FROM Employee 
JOIN EmployeeSkills 
ON (EmployeeID=E.ID) 
JOIN Skill ON (SkillID=S.ID)
WHERE Title=’DBA’;

ここに私が欲しいものの明示的なバージョンがあります。これを暗黙のうちにどのように記述しますか?

ありがとう

4

2 に答える 2

2

これが私がそれを書く方法です:

SELECT E.Name FROM Employee E,EmployeeSkills ES,Skill S
WHERE E.ID = ES.EmployeeID
  AND ES.SkillID = S.ID
  AND S.Title=’DBA’;

最初に受け取った回答とほとんど同じですが、わかりやすくするために、エイリアスを使用し始めたら、エイリアスを使用して、それらを定義するようにしてください。上記の例では、従業員とスキルの両方が Name を持つことができ、Title は従業員の役職またはスキルの名前にすることができます。テーブル名 (またはエイリアス) を使用すると、スキーマに精通していなくても、何が起こっているかを簡単に確認できます。

また、私が何年も前に使用していたデータベースだったかもしれませんが、テーブルを導入した順序で結合を記述しなかった場合、パフォーマンスが低下しました (非常にわずかですが、大きなデータでは大きな違いがありました)。

于 2013-06-18T03:03:29.990 に答える
1

これは、次の 2 つのテーブルの例とほとんど同じです。

SELECT a.Name 
FROM Employee a,EmployeeSkills b ,Skill c
WHERE a.EmployeeID = b.ID 
   AND b.SkillID = c.ID
   AND Title=’DBA’;

編集: Everett Warren がエイリアスに対して行った良い点です。ベスト プラクティスは、ずっと前に廃止されたため、暗黙的な結合を使用しないことです。

于 2013-06-18T02:43:55.327 に答える