假设有两个表由以下人员创建:
CREATE TABLE emp
(
EMPNO int,
EMPNAME varchar(255),
JOB varchar(255),
DEPTNO int
);
CREATE TABLE dept
(
LOC varchar(255),
DEPTNO int
);
我想知道哪个部门没有雇员。我使用这样的左连接:
select dept.*
from dept
left join emp
on (dept.deptno=emp.deptno)
where emp.empno is null;
但是如果我为dept或emp使用别名,那么我只能使用别名而不能使用原始表名。例如:
select dept.*
from dept as d
left join emp
on (dept.deptno=emp.deptno)
where emp.empno is null;
我从 sqlite 收到错误“没有这样的表:部门”。
如果我在一个表上运行操作,我可以在同一个查询中使用别名和原始表名。
有人知道为什么吗?