SQL 隐式联接

示例

连接也可以通过在from子句中有多个表(用逗号分隔),并在where子句中定义它们之间的关系来执行。这种技术称为隐式连接(因为它实际上并不包含join子句)。

所有RDBMS都支持它,但是通常建议不要使用该语法。使用此语法不是一个好主意的原因是:

  • 可能会发生意外的交叉联接,然后返回错误的结果,尤其是在查询中有很多联接的情况下。

  • 如果您打算进行交叉联接,则语法上并不清楚(改为写出CROSS JOIN),并且有人可能会在维护期间进行更改。

下面的示例将选择员工的名字和他们工作所在部门的名称:

SELECT e.FName, d.Name
FROM   Employee e, Departments d
WHERE e.DeptartmentId= d.Id

这将从示例数据库返回以下内容:

e.FNamed。名字
詹姆士人力资源
约翰人力资源
理查德营业额