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’;

与您收到的第一个答案几乎相同,但为了清楚起见,一旦我开始使用别名,我将始终使用它们,并确保您定义它们。在上面的示例中,员工和技能都可以有一个名称,而职称可以是员工的头衔或技能的名称。即使您不熟悉架构,使用表名(或别名)也可以轻松查看正在发生的事情。

此外,可能是我多年前使用的数据库,但如果您没有按照引入表的顺序编写连接,它会影响性能(非常轻微,但在大数据上差异很大)。

于 2013-06-18T03:03:29.990 回答
1

它与两个表示例几乎相同:

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 回答