У меня есть база данных для железнодорожной компании. Я хочу объединить два запроса вместе, чтобы я мог использовать их как один из внешнего интерфейса Java.
Первый запрос возвращает идентификаторы не заполненных поездов.
select TrainID
from Train
where Capacity > 0;
Вместимость каждого поезда 50, и я вычитаю по одному при каждом заказе места, поэтому, если вместимость больше нуля, на борту есть место.
Второй запрос возвращает RouteID поезда с указанием пункта назначения и отправления:
select *
from Timetable
where RouteID = (select RouteID
from Routes
where OriginID = "New York"
and DestinationID = "LA");
Вопрос / Нужда
Я хочу объединить эти два запроса, чтобы получить что-то вроде:
Give me all the Timetable entries for this route ONLY IF there's room on the train.
Я не парень вроде DB, поэтому у меня просто не получается соединить два и два.
Редактировать: схема обрисована в общих чертах ниже. Спасибо за ответы, я собираюсь попробовать их сейчас.
Маршруты
+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| RouteID | varchar(25) | NO | PRI | NULL | |
| OriginID | varchar(25) | NO | MUL | NULL | |
| DestinationID | varchar(25) | NO | MUL | NULL | |
| Duration | int(3) | NO | | NULL | |
+---------------+-------------+------+-----+---------+-------+
Станции
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| StationID | varchar(25) | NO | | NULL | |
+-----------+-------------+------+-----+---------+-------+
Расписание
+-------------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------------------+----------------+
| TimeID | int(11) | NO | PRI | NULL | auto_increment |
| RouteID | varchar(11) | NO | | NULL | |
| TrainID | varchar(11) | NO | | NULL | |
| DepartDate | timestamp | NO | | 0000-00-00 00:00:00 | |
| ArrivalDate | timestamp | NO | | 0000-00-00 00:00:00 | |
+-------------+-------------+------+-----+---------------------+----------------+
Поезд
]+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| TrainID | varchar(11) | NO | PRI | NULL | |
| Capacity | int(11) | NO | | 50 | |
+----------+-------------+------+-----+---------+-------+