用于 Oracle 的 Toad 中的列含糊不清地定义错误
column ambiguosly defined error in toad for oracle
我正在使用 toad for oracle 并编写了这个 SQL 查询,但它给出了一个
错误:
[错误] 执行 (65:3):ORA-00918:列定义不明确
下面是我的 SQL 查询,我尝试使用别名来区分列。
select HR.EMPLOYEES.FIRST_NAME||' '||HR.EMPLOYEES.LAST_NAME AS
Full_Name,HR.EMPLOYEES.SALARY as sal,HR.EMPLOYEES.JOB_ID as ji,
HR.EMPLOYEES.COMMISSION_PCT as cmpct,HR.EMPLOYEES.MANAGER_ID as
mgid,HR.EMPLOYEES.DEPARTMENT_ID as dep,HR.DW_COUNTRIES.C_ID as
country,HR.DW_REGION.R_ID as region,
HR.LOCATIONS.LOCATION_ID as loc
from HR.EMPLOYEES
join HR.DEPARTMENTS ON
HR.EMPLOYEES.DEPARTMENT_ID=HR.DEPARTMENTS.DEPARTMENT_ID
join HR.DEPARTMENTS ON HR.DEPARTMENTS.LOCATION_ID=HR.LOCATIONS.LOCATION_ID
join HR.LOCATIONS ON HR.LOCATIONS.COUNTRY_ID=HR.DW_COUNTRIES.C_ID
join HR.DW_COUNTRIES ON HR.DW_COUNTRIES.R_ID=HR.DW_REGION.R_ID
where HR.DW_COUNTRIES.C_ID='US'
AND HR.EMPLOYEES.HIRE_DATE BETWEEN TO_DATE('16/08/2002','DD/MM/YYYY') AND
TO_DATE('07/12/2007','DD/MM/YYYY')
AND HR.DW_REGION.R_ID=2
AND HR.LOCATIONS.LOCATION_ID=1700
AND HR.EMPLOYEES.DEPARTMENT_ID=90
您在查询中使用了 table HR.DEPARTMENTS 两次,这就是问题的根源。你确定你必须加入这个 table 两次吗?您还有一些不清楚的连接。我修复了它们,但没有测试查询。
select HR.EMPLOYEES.FIRST_NAME||' '||HR.EMPLOYEES.LAST_NAME AS
Full_Name,HR.EMPLOYEES.SALARY as sal,HR.EMPLOYEES.JOB_ID as ji,
HR.EMPLOYEES.COMMISSION_PCT as cmpct,HR.EMPLOYEES.MANAGER_ID as
mgid,HR.EMPLOYEES.DEPARTMENT_ID as dep,HR.DW_COUNTRIES.C_ID as
country,HR.DW_REGION.R_ID as region,
HR.LOCATIONS.LOCATION_ID as loc
from HR.EMPLOYEES
join HR.DEPARTMENTS ON
HR.EMPLOYEES.DEPARTMENT_ID=HR.DEPARTMENTS.DEPARTMENT_ID
join HR.LOCATIONS ON HR.DEPARTMENTS.LOCATION_ID=HR.LOCATIONS.LOCATION_ID
join HR.DW_COUNTRIES ON HR.LOCATIONS.COUNTRY_ID=HR.DW_COUNTRIES.C_ID
join HR.DW_REGION ON HR.DW_COUNTRIES.R_ID=HR.DW_REGION.R_ID
where HR.DW_COUNTRIES.C_ID='US'
AND HR.EMPLOYEES.HIRE_DATE BETWEEN TO_DATE('16/08/2002','DD/MM/YYYY') AND
TO_DATE('07/12/2007','DD/MM/YYYY')
AND HR.DW_REGION.R_ID=2
AND HR.LOCATIONS.LOCATION_ID=1700
AND HR.EMPLOYEES.DEPARTMENT_ID=90
我正在使用 toad for oracle 并编写了这个 SQL 查询,但它给出了一个 错误:
[错误] 执行 (65:3):ORA-00918:列定义不明确
下面是我的 SQL 查询,我尝试使用别名来区分列。
select HR.EMPLOYEES.FIRST_NAME||' '||HR.EMPLOYEES.LAST_NAME AS
Full_Name,HR.EMPLOYEES.SALARY as sal,HR.EMPLOYEES.JOB_ID as ji,
HR.EMPLOYEES.COMMISSION_PCT as cmpct,HR.EMPLOYEES.MANAGER_ID as
mgid,HR.EMPLOYEES.DEPARTMENT_ID as dep,HR.DW_COUNTRIES.C_ID as
country,HR.DW_REGION.R_ID as region,
HR.LOCATIONS.LOCATION_ID as loc
from HR.EMPLOYEES
join HR.DEPARTMENTS ON
HR.EMPLOYEES.DEPARTMENT_ID=HR.DEPARTMENTS.DEPARTMENT_ID
join HR.DEPARTMENTS ON HR.DEPARTMENTS.LOCATION_ID=HR.LOCATIONS.LOCATION_ID
join HR.LOCATIONS ON HR.LOCATIONS.COUNTRY_ID=HR.DW_COUNTRIES.C_ID
join HR.DW_COUNTRIES ON HR.DW_COUNTRIES.R_ID=HR.DW_REGION.R_ID
where HR.DW_COUNTRIES.C_ID='US'
AND HR.EMPLOYEES.HIRE_DATE BETWEEN TO_DATE('16/08/2002','DD/MM/YYYY') AND
TO_DATE('07/12/2007','DD/MM/YYYY')
AND HR.DW_REGION.R_ID=2
AND HR.LOCATIONS.LOCATION_ID=1700
AND HR.EMPLOYEES.DEPARTMENT_ID=90
您在查询中使用了 table HR.DEPARTMENTS 两次,这就是问题的根源。你确定你必须加入这个 table 两次吗?您还有一些不清楚的连接。我修复了它们,但没有测试查询。
select HR.EMPLOYEES.FIRST_NAME||' '||HR.EMPLOYEES.LAST_NAME AS
Full_Name,HR.EMPLOYEES.SALARY as sal,HR.EMPLOYEES.JOB_ID as ji,
HR.EMPLOYEES.COMMISSION_PCT as cmpct,HR.EMPLOYEES.MANAGER_ID as
mgid,HR.EMPLOYEES.DEPARTMENT_ID as dep,HR.DW_COUNTRIES.C_ID as
country,HR.DW_REGION.R_ID as region,
HR.LOCATIONS.LOCATION_ID as loc
from HR.EMPLOYEES
join HR.DEPARTMENTS ON
HR.EMPLOYEES.DEPARTMENT_ID=HR.DEPARTMENTS.DEPARTMENT_ID
join HR.LOCATIONS ON HR.DEPARTMENTS.LOCATION_ID=HR.LOCATIONS.LOCATION_ID
join HR.DW_COUNTRIES ON HR.LOCATIONS.COUNTRY_ID=HR.DW_COUNTRIES.C_ID
join HR.DW_REGION ON HR.DW_COUNTRIES.R_ID=HR.DW_REGION.R_ID
where HR.DW_COUNTRIES.C_ID='US'
AND HR.EMPLOYEES.HIRE_DATE BETWEEN TO_DATE('16/08/2002','DD/MM/YYYY') AND
TO_DATE('07/12/2007','DD/MM/YYYY')
AND HR.DW_REGION.R_ID=2
AND HR.LOCATIONS.LOCATION_ID=1700
AND HR.EMPLOYEES.DEPARTMENT_ID=90