Спасибо! Это ответ, который я ищу. И правильно, этот подзапрос не имеет смысла, когда вы описываете его так. Понял!

понимаю, почему следующий запрос работает, хотя подзапрос выдает ошибку «неверный идентификатор».

SELECT *
FROM aircraft
WHERE airc_manufact IN (SELECT airc_manufact FROM flight);

Мои таблицы выглядят следующим образом (сокращенно):

САМОЛЕТ (airc_model (PK), airc_manufact)

ПОЛЕТ (flt_no (PK), airc_model (FK))

Если я запускаю подзапрос сам по себе, то получаю ошибку «неверный идентификатор», как и должно быть, поскольку airc_manufacture не является столбцом в таблице полетов.

Если я запускаю весь запрос, то я не получаю сообщение об ошибке. Oracle, кажется, игнорирует подзапрос и, таким образом, выдает мне все строки в таблице самолетов.

Мне кажется, это ошибка, потому что в запросе есть очевидная ошибка. Почему выполняется запрос? Насколько я понимаю, Oracle сначала запустит или оценит подзапрос, а затем выполнит внешний запрос.

Ответы на вопрос(1)

Ваш ответ на вопрос