У меня есть две таблицы, которые выглядят как
Поезд
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| TrainID  | varchar(11) | NO   | PRI | NULL    |       |
| Capacity | int(11)     | NO   |     | 50      |       |
+----------+-------------+------+-----+---------+-------+
Бронирование
+---------------+-------------+------+-----+---------+----------------+
| Field         | Type        | Null | Key | Default | Extra          |
+---------------+-------------+------+-----+---------+----------------+
| ReservationID | int(11)     | NO   | PRI | NULL    | auto_increment |
| FirstName     | varchar(30) | NO   |     | NULL    |                |
| LastName      | varchar(30) | NO   |     | NULL    |                |
| DDate         | date        | NO   |     | NULL    |                |
| NoSeats       | int(2)      | NO   |     | NULL    |                |
| Route         | varchar(11) | NO   |     | NULL    |                |
| Train         | varchar(11) | NO   |     | NULL    |                |
+---------------+-------------+------+-----+---------+----------------+
В настоящее время я пытаюсь создать запрос, который увеличит пропускную способность на поезде, если резервирование будет отменено. Я знаю, что мне нужно выполнить Join, но я не уверен, как это сделать в инструкции Update. Например, я знаю, как получить пропускную способность поезда с заданной определенной ReservationID, например:
select Capacity 
  from Train 
  Join Reservations on Train.TrainID = Reservations.Train 
 where ReservationID = "15";
Но я хотел бы построить запрос, который делает это -
Increment Train.Capacity by ReservationTable.NoSeats given a ReservationID
Если возможно, я хотел бы также узнать, как прирастить на произвольное количество мест. В стороне, я планирую удалить резервирование после выполнения приращения в транзакции Java. Удалит ли эффект транзакцию?
Спасибо за помощь!