Ошибка указывает на то, что вы запрашиваете столбец, который имеет имя из более чем одной из этих таблиц. Вы хотите «flight_no» - но может быть столбец с именем «flight_no» как на рейсах, так и на страновых таблицах.
Чтобы избежать этого, используйте псевдонимы в предложении FROM.
Пример
select a.col1, b.col1
from table1 a, table2 b
where a.id = b.id;
Это не является неоднозначным, потому что вы явно говорить Oracle, какие столбцы с именем «col1» вы хотите - вы не делаете его угадать.
Это не часть вашего вопроса, но ваш запрос, когда вы его пишете, приведет к объединению каждой записи каждой таблицы в каждой таблице в каждой другой записи в двух других таблицах. Это называется Cartesian Join или Product.
Обязательно ли это неправильно? Возможно, нет. Но 99% времени, это не то, что вы хотите. Вы хотите, чтобы строки соответствовали друг другу, поэтому используйте предложение WHERE и отфильтровывайте строки.
Или пройдите путь ANSI JOIN и сделайте это в предложении FROM. произошла
(1) Никогда не используйте запятые в предложении 'FROM'; * always * использовать явный, правильный, современный 'JOIN' синтаксис. (2) Всегда квалифицируйте имена столбцов (желательно с псевдонимами таблиц), особенно если вы изучаете SQL. (3) Ошибка довольно очевидна; столбец, о котором вы говорили, находится в нескольких таблицах. –
Вы присоединяетесь к 3 столам без условий соединения. Это правильно? – Aleksej
Пожалуйста, отредактируйте свой вопрос, нажав кнопку «edit» непосредственно под тегами и включив определения каждой из соответствующих таблиц. Благодарю. –