无效的ID查询

问题描述:

当我输入验证码我不断收到关于DepartmentName“无效的标识符”:无效的ID查询

SELECT LastName "Last Name", Gender "Gender" 
FROM Employee 
WHERE DepartmentName = 
(SELECT DepartmentName FROM Department WHERE DepartmentName = 'Radiology'); 

任何帮助表示赞赏!

+1

你确定'DepartmentName'存在吗?你是否在正确的范围内?你可能需要一个'[USE]'来确定吗? – tmwoods

+2

分享您的表格说明 – Valli

+1

请阅读并按照[mcve]进行操作。你的问题缺乏关键信息。 – philipxy

如果在创建表的时候在列名中有双引号(比如说“DepartmentName”),那么在选择查询中也应该有带双引号的列。

如果使用Where DepartmentName,你会得到一个错误ORA-00904-无效标识符

因此,为了避免错误,你必须使用WHERE“DepartmentName的”

我要去猜测其意图是这样的:

SELECT e.LastName as "Last Name", e.Gender as "Gender" 
FROM Employee e 
WHERE e.DepartmentId = (SELECT d.DepartmentId 
         FROM Department d 
         WHERE d.DepartmentName = 'Radiology' 
         ); 

也就是说,你想这两个表连接的某种id。如果您在EmployeeDepartmentName,你会这样写:

SELECT e.LastName as "Last Name", e.Gender as "Gender" 
FROM Employee e 
WHERE e..DepartmentName = 'Radiology'; 

否“加盟”是必要的。

+0

为什么这会被降低? –

可能性是部门名称未存储在employee表中,但部门表中某行的某个“外键”是。因此,您可以加入这两个表格

SELECT e.LastName as "Last Name", e.Gender as "Gender" 
FROM Employee e 
INNER JOIN Department d ON e.DepartmentId = d.id -- guessed this column name 
WHERE d.DepartmentName = 'Radiology' 

如果遇到连接或IN()的选择,请使用连接。