隐含加入
也可以通过在 from
子句中使用几个表来执行连接,用逗号 ,
分隔并在 where
子句中定义它们之间的关系。此技术称为隐式连接(因为它实际上不包含 join
子句)。
所有 RDBMS 都支持它,但通常建议不要使用语法。使用此语法的一个坏主意的原因是:
- 有可能会出现意外的交叉连接,然后返回不正确的结果,尤其是如果查询中有很多连接。
- 如果你打算交叉连接,那么从语法中不清楚(写出 CROSS JOIN 代替),有人可能会在维护期间更改它。
以下示例将选择员工的名字以及他们为其工作的部门的名称:
SELECT e.FName, d.Name
FROM Employee e, Departments d
WHERE e.DeptartmentId = d.Id
这将从示例数据库返回以下内容 :
e.FName | d.Name |
---|---|
詹姆士 | HR |
约翰 | HR |
理查德 | 销售 |