Ich habe zwei Tabellen, die so aussehen
Zug
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| TrainID | varchar(11) | NO | PRI | NULL | |
| Capacity | int(11) | NO | | 50 | |
+----------+-------------+------+-----+---------+-------+
Reservierungen
+---------------+-------------+------+-----+---------+----------------+
| 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 | |
+---------------+-------------+------+-----+---------+----------------+
Derzeit versuche ich, eine Abfrage zu erstellen, die die Kapazität eines Zuges erhöht, wenn eine Reservierung storniert wird. Ich weiß, dass ich einen Join durchführen muss, bin mir aber nicht sicher, wie ich das in einer Update-Anweisung tun soll. Zum Beispiel weiß ich, wie man die Kapazität eines Zuges mit einer bestimmten Reservierungs-ID erhält, wie folgt:
select Capacity
from Train
Join Reservations on Train.TrainID = Reservations.Train
where ReservationID = "15";
Aber ich möchte die Abfrage erstellen, die dies tut -
Increment Train.Capacity by ReservationTable.NoSeats given a ReservationID
Wenn möglich, möchte ich auch wissen, wie man um eine beliebige Anzahl von Sitzen erhöht. Nebenbei habe ich vor, die Reservierung zu löschen, nachdem ich das Inkrement in einer Java-Transaktion ausgeführt habe. Wird das Löschen die Transaktion beeinflussen?
Danke für die Hilfe!