Вот сценарий:
У меня две таблицы отдела и сотрудника. когда я выбираю столбец из таблицы, которой нет в этой таблице, он выдает ошибку, как и ожидалось. Тем не менее, когда я использую подзапрос и снова выбираю тот же столбец из той же таблицы, это работает. Я не понимаю, как это может игнорировать мою ошибку.
create table department
( DEPT_ID NUMBER(2),
DEPT_NAME VARCHAR2(6) );
insert into department values(1,'ch');
create table employee
( EMP_ID NUMBER(2),
EMP_NAME VARCHAR2(6),
EMP_DEPT_ID NUMBER(2)
);
insert into employee values(0,'ch',1);
--getting error for below (ORA-00904: "DEPT_ID": invalid identifier)
select dept_id
from employee;
-- not getting any error and can see the output for below sql statement. How it can consider invalid column for employee table dept_id in this query.
select *
from department
where dept_id in
(
-- Incorrect column name
select dept_id
from employee
);
Я пробовал это с 2 Oracle RDBMS и MSSQL. Случай одинаков с обоими. Я не общался с другими