ну и зачем тебе тут что-то сложнее классического SQL? если нет доступа к базе, а есть только картинка, но хочешь поэкспериментировать и лень разворачивать сервер с бд у себя - http://sqlfiddle.com/ в помощь
select da.city as dep_city, aa.city as arr_city from tickets t join ticket_flights tf on t.ticket_no=tf.ticket_no join flights f on f.flight_id=tf.flight_id join airports da on f.departure_airport=da.airport_code join airport aa on f.arrival_airport=aa.airport_code where t.passenger_name='username'
О спасибо А вот если допусти в том же запросе надо вывести ещё поле city из таблицы airports Ведь departure_airport и arrival_airport свой city (тоесть надо продублировать поле ) , знаю только то что он ссылается по внешнему ключу airports.airport_code Как это лучше всего сделать ?
а можно требования нормальные? Что есть на входе, что хочешь получить на выходе хотя бы? примерчиков пару. А то если просто по фамилии получить все что можно в статичной базе, то как выше посоветовали - это чистый SQL, пиши джойн и не парься. Если же ты хочешь передать на вход имя таблицы А, имя таблицы Б, поле для поиска в таблице А, значение поля в таблице А, искомое поле в таблице Б и по этому набору получить значение поля в таблице Б, то это уже совсем другая тема (хотя я бы все равно просто накидал пачку запросов и в зависимости от таблиц А/Б разные скрипты просто брал SQLные, при появлении новых таблиц - докидывал новые скрипты)
Ну вот допустим в таблице билеты (tickets )есть поле passenger_name нужно достать из таблицы полеты(flights) поля departure_airport и arrival_airport а из таблицы аэропорты достать поле city
ну и зачем тебе тут что-то сложнее классического SQL? если нет доступа к базе, а есть только картинка, но хочешь поэкспериментировать и лень разворачивать сервер с бд у себя - http://sqlfiddle.com/ в помощь
select
da.city as dep_city,
aa.city as arr_city
from
tickets t
join ticket_flights tf on t.ticket_no=tf.ticket_no
join flights f on f.flight_id=tf.flight_id
join airports da on f.departure_airport=da.airport_code
join airport aa on f.arrival_airport=aa.airport_code
where t.passenger_name='username'
лять, веткой промазал, ну да ладно
О спасибо
А вот если допусти в том же запросе надо вывести ещё поле city из таблицы airports
Ведь departure_airport и arrival_airport свой city (тоесть надо продублировать поле ) , знаю только то что он ссылается по внешнему ключу airports.airport_code
Как это лучше всего сделать ?
Если речь про чистый SQL, то ты можешь объединить таблицы через JOIN, и после этого уже делать выборку.
У меня была такая мысль но мне кажется это слишком легко, ну и в добавок не оптимизировано будет
а можно требования нормальные? Что есть на входе, что хочешь получить на выходе хотя бы? примерчиков пару. А то если просто по фамилии получить все что можно в статичной базе, то как выше посоветовали - это чистый SQL, пиши джойн и не парься. Если же ты хочешь передать на вход имя таблицы А, имя таблицы Б, поле для поиска в таблице А, значение поля в таблице А, искомое поле в таблице Б и по этому набору получить значение поля в таблице Б, то это уже совсем другая тема (хотя я бы все равно просто накидал пачку запросов и в зависимости от таблиц А/Б разные скрипты просто брал SQLные, при появлении новых таблиц - докидывал новые скрипты)
Ну вот допустим в таблице билеты (tickets )есть поле passenger_name нужно достать из таблицы полеты(flights) поля departure_airport и arrival_airport а из таблицы аэропорты достать поле city