FROM<表名>[[INNERILEFTIRIGHT]JOIN<表名>]....n]--来自哪些表[WHERE <条件表达式>[ANDIOR<条件表达式>l[..n]]--根据什么条件详细解释
时间: 2024-10-09 18:01:10 浏览: 18
自连接(Self Join)是SQL查询中的一种常见操作,它允许你在同一个表中执行关联查询。当一个表通过某些列与自身相匹配时,可以使用这个特性。例如,假设有一个名为`emp`的员工表,其中包含员工信息以及他们的经理(通过`mgr`列)。你可以这样使用自连接来查找每个员工及其直接经理的名字[^1]:
```sql
SELECT er.ename AS employee_name, ee.ename AS manager_name
FROM emp er
INNER JOIN emp ee ON er.mgr = ee.empno;
```
在这个查询中,`FROM emp er, emp ee`定义了两个子集,一个是原始员工表(er),另一个是作为连接源的同一表(ee)。`ON er.mgr = ee.empno`是连接条件,表示如果一个员工的经理ID等于另一个员工的员工ID,则这两条记录关联。
`WHERE`子句可以用来添加额外的筛选条件,比如只查找特定部门的员工及其经理:
```sql
SELECT ...
FROM emp er
INNER JOIN emp ee ON er.mgr = ee.empno
WHERE er.deptno = 20;
```
阅读全文