このようなテーブルが2つあります
列車
+----------+-------------+------+-----+---------+-------+
| 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 | |
+---------------+-------------+------+-----+---------+----------------+
現在、予約がキャンセルされた場合に列車の容量を増やすクエリを作成しようとしています。結合を実行する必要があることはわかっていますが、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トランザクションでインクリメントを実行した後、予約を削除する予定です。削除はトランザクションに影響しますか?
助けてくれてありがとう!