所以我这个学期很难理解SQL。我对SQL中的知识真的没有信心,而且我正在尝试这个练习,它说:
一个SELECT语句,用于检索列为DEPARTMENT_ID , DEPARTMENT_NAME , FULL_NAME, JOB_TITLE
的员工列表,其中FULL_NAME是名字和姓氏,并且他们的职位名称中包含单词“Sales”的员工之间的空格连接起来。该列表必须按职称和部门名称排序。
到目前为止,我想出了这个
SELECT department_id,
department_name,
first_name || ' ' || last_name as Full_name,
job_title
FROM departments d, employees e, jobs j
WHERE d.department_id=e.department_id
HAVING job_title LIKE '%Sales%';
错误说:
Error starting at line 1 in command:
select department_id, department_name, first_name || ' ' || last_name as Full_name, job_title
from departments d, employees e, jobs j
where d.department_id=e.department_id
having job_title like '%Sales%'
Error at Command Line:1 Column:8
Error report:
SQL Error: ORA-00918: column ambiguously defined
00918. 00000 - "column ambiguously defined"
*Cause:
*Action:
任何提示和帮助都可以。
答案 0 :(得分:5)
命令中的“第8列”是第8个字符department_id
字段。您从两个具有该列的表中选择列department_id
;这是不明确的,因为解析器看到department_id
的两个可能值(departments
中的一个和employees
中的一个),,即使我们根据您的WHERE子句知道这些值将是相同的。你必须选择一个:
select d.department_id, ...
答案 1 :(得分:3)
指定所选字段的e.department_id或d.department_id(等)