Есть 3 таблицы: с рейсами самолетов flight
, с названиями аэропортов airport
и с названиями городов city
. Нужно взять один из рейсов и узнать город вылета и город прилет.
в таблице flight
аэропорты обозначены fromAirport
и toAirport
эти коды соответствуют airport.code
. У каждого airport.code
есть свой airport.cityCode
. Далее по этому cityCode
нужно выбрать город city.code
. У каждого city.code
есть свой city.name
его то мне и нужно взять. Такая вот тройная вложенность.
Подскажите как это сделать одним запросом?
UPD
Пробовал использовать вот такой запрос:
SELECT * FROM flights, airport, city
WHERE flights.fromAirport = airport.code AND flights.toAirport = airport.code
ORDER BY flights.upload DESC
LIMIT 1;
Как сюда третью таблицу впихать - понятия не имею.
SELECT f.flightNumber, cF.name townFrom, cT.name townTo
FROM flight f, airport aF, airport aT, city cF, city cT
WHERE f.fromAirport = aF.code
AND aF.cityCode = cF.code
AND f.toAirport = aT.code
AND aT.cityCode = cT.code
-- AND f.flightNumber IN (123,456,789)
Вариант с использованием конструкции JOIN
:
SELECT f.code, cf.name AS fromCity, ct.name AS toCity FROM flight f
INNER JOIN airport afrom ON f.fromAirport = afrom.code
INNER JOIN airport ato ON f.toAirport = ato.code
INNER JOIN city cf ON afrom.cityCode = cf.code
INNER JOIN city ct ON ato.cityCode = ct.code
ORDER BY f.code;
А вот и рабочий пример на SQLFiddle.
У вас должно быть примерно так:
SELECT name FROM city
JOIN airport ON city.code=airport.cityCode
JOIN flights ON airport.code=flights.fromAirport
WHERE flights.fromAirport=12345
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть обычная таблица в ней есть поле дата (лишний столбик занимает)
Как в TestLink создать общедоступный тесткейс, чтобы все юзеры могли просматривать тесткейс, но не имели возможности редактироватьИли дайте...
Создаю html форму в которой элементы выпадающего списка будут данные из столбца в нашей таблицеПример кода: