"各列定义不明"

1 sql oracle11g

所以这个学期我很难理解SQL.我对SQL中的知识真的没有信心,而且我正在尝试这个练习,它说:

一个SELECT语句,用于检索员工列表,DEPARTMENT_ID , DEPARTMENT_NAME , FULL_NAME, JOB_TITLE 其中FULL_NAME的名称和姓氏与他们之间的空格连接在一起,这些员工的职位名称包含"销售"一词.该列表必须按职称和部门名称排序.

到目前为止,我想出了这个

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%';
Run Code Online (Sandbox Code Playgroud)

并且错误说:

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:
Run Code Online (Sandbox Code Playgroud)

任何提示和帮助都可以.

Jim*_*agg 5

命令中的"第8列"是第8个字符,即department_id字段.您正在department_id从两个具有该列的表中选择列; 这是不明确的,因为解析器看到两个可能的值department_id(一个来自departments和一个employees),即使我们根据您的WHERE子句知道这些值将是相同的. 你必须选择一个:

select d.department_id, ...
Run Code Online (Sandbox Code Playgroud)