Задавайте вопросы, мы ответим
Вы не зашли.
Есть 2 таблицы. Таблица со аэропортов airport , и таблица flight со списком рейсов из одних аэропортов в другие. Вот код создания:
CREATE TABLE airport (
airport_id int(15) NOT NULL auto_increment,
airport_name varchar(255) NOT NULL,
airport_city int(5) NOT NULL,
PRIMARY KEY (airport_id),
) TYPE=INNODB DEFAULT CHARSET=cp1251;
CREATE TABLE flight (
flight_id int(10) NOT NULL auto_increment,
flight_number varchar(10) NOT NULL,
flight_price double NOT NULL,
flight_airport_out int(5) NOT NULL,
flight_airport_in int(5) NOT NULL,
PRIMARY KEY (flight_id),
INDEX airport_ind (flight_airport_in),
FOREIGN KEY (flight_airport_in) REFERENCES airport(airport_id) ON DELETE CASCADE,
INDEX airport_ind2 (flight_airport_out),
FOREIGN KEY (flight_airport_out) REFERENCES airport(airport_id) ON DELETE CASCADE
) TYPE=INNODB DEFAULT CHARSET=cp1251;
Нам известны 2 значения airoport_city (переменные $city1 и $city2), т.е. 2 города, из первого(переменная $city1) во второй(переменная $city2) нам надо будет лететь.
И на основе этих значений нам надо написать запрос, который бы выводил все рейсы из таблицы flight, на которых мы могли бы долететь из первого города(переменная $city1) во второй(переменная $city2).
Помогите, пожалуйста, ну никак не могу сообразить, как это сделать.
Неактивен
select * from flight where flight_airport_out = $city1 and flight_airport_in = $city2;
Неактивен
к сожалению так не пойдет, так как в полях flight_airport_in и flight_airport_out содержатся номера аэропортов, а в переменных $city1 и $city2 - номера городов (такие же номера городов содержаться в поле airport_city)
Отредактированно BOB41K (14.11.2008 15:19:35)
Неактивен
select * from airport a1, flight,airport a2 where
a1.airport_id=flight_airport_out and flight_airport_in=a2.airport_id
and a1.airport_city=$city1 and a2.airport_city=$city2;
Неактивен
О, круто, спасибо, работает!
Неактивен