首页 > 解决方案 > PostgreSQL 错误:列“MANAGER”不存在

问题描述

谁能告诉为什么会出现这个错误?我的代码有问题吗?

哪个经理 (ename) 只与与他从事不同工作的员工一起工作?

Select e.ename
from emp e 
where e.job = "MANAGER" 
    and e.mgr not in (select empno from emp where job = "MANAGER")

查询错误:FEHLER: Spalte >>MANAGER<< existsiert nicht LINE 1: Select e.ename from emp e where e.job = "MANAGER" and e.mgr ...

图片:

在此处输入图像描述

标签: sqlpostgresql

解决方案


您的字符串文字应该用单引号而不是双引号引起来。

SELECT e.ename
    FROM emp e
    WHERE e.job = 'MANAGER'
        AND e.mgr NOT IN(SELECT empno
                             FROM emp
                             WHERE job = 'MANAGER'); 

另外,根据您的标题,我想知道是否不应该更通用地编写此查询以解释任何共同的工作?就像是:

SELECT e.ename
    FROM emp e
    WHERE NOT EXISTS(SELECT 1
                         FROM emp em
                         WHERE em.empno = e.mgr
                             AND em.job = e.job);

推荐阅读