无效的ID查询
问题描述:
当我输入验证码我不断收到关于DepartmentName
“无效的标识符”:无效的ID查询
SELECT LastName "Last Name", Gender "Gender"
FROM Employee
WHERE DepartmentName =
(SELECT DepartmentName FROM Department WHERE DepartmentName = 'Radiology');
任何帮助表示赞赏!
答
如果在创建表的时候在列名中有双引号(比如说“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
。如果您在Employee
有DepartmentName
,你会这样写:
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()的选择,请使用连接。
你确定'DepartmentName'存在吗?你是否在正确的范围内?你可能需要一个'[USE]'来确定吗? – tmwoods
分享您的表格说明 – Valli
请阅读并按照[mcve]进行操作。你的问题缺乏关键信息。 – philipxy