SQL 多表查询与聚合操作详解
1. 多表查询基础
在 SQL 中进行多表查询时,我们常常会用到元组变量。例如,当有三个自由元组变量(e、s 和 d)分别对应三张表时,为了在查询结果中得到正确的行组合,我们至少需要在 WHERE 子句中设置两个条件。
虽然 SQL 语言支持将表名作为默认的元组变量,无需在 FROM 子句中显式声明,但这种方式容易引起混淆。比如在不同地方使用相同名称来引用表和表中的特定行,却没有明确区分行和表的引用。而且,使用较长的表名时,在 FROM 子句中显式声明元组变量并在整个 SQL 语句中使用,能减少输入量。
以下是一个示例:
select employees.ename, departments.location
from employees, departments
where employees.deptno = departments.deptno;
这个 SQL 语句在语法上是正确的,但为了避免混淆,我们不建议使用这种方式。
1.1 自连接(Self - Joins)
在 SQL 里,我们还可以将表与自身进行连接,这种连接方式被称为自连接(autojoin 或 self - join)。在自连接中, FROM 子句会多次引用同一个表,这也是我们在 SQL 语句中应使用显式元组变量的另一个重要原因,因为表名在自连接中会导致歧义问题。
下面是一个自连
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



