Sql Join, обновление одной таблицы и генерация вывода из другой таблицы
CREATE TABLE LeadCustomer
(
CustomerID INTEGER NOT NULL, FirstName VARCHAR(20) NOT NULL,
Surname VARCHAR(40) NOT NULL, BillingAddress VARCHAR(200) NOT NULL,
email VARCHAR(30) NOT NULL
)
CREATE TABLE Flight
(
FlightID INTEGER NOT NULL, FlightDate TIMESTAMP NOT NULL,
Origin VARCHAR(30) NOT NULL, Destination VARCHAR(30) NOT NULL,
MaxCapacity INTEGER NOT NULL, PricePerSeat DECIMAL NOT NULL
)
CREATE TABLE FlightBooking
(
BookingID INTEGER NOT NULL, CustomerID INTEGER NOT NULL, FlightID INTEGER NOT NULL,
NumSeats INTEGER NOT NULL, Status CHAR(1) NOT NULL, BookingTime TIMESTAMP NOT NULL,
TotalCost DECIMAL
)
Если рейс перенесен, как мы можем составить список клиентов, с которыми нужно связаться?
Пока я закончил до:
SELECT
LeadCustomer.CustomerID,Flight.FlightID
FROM LeadCustomer
inner join FlightBooking
ON LeadCustomer.CustomerID = FlightBooking.CustomerID
inner join
Flight ON FlightBooking.FlightID = Flight.FlightID;
но не знаю, как обновить время полета
1 ответ
Я понимаю, что Flight.FlightDate совпадает с FlightBooking.BookingTime. Когда вы обновляете первый столбец, вы можете искать, где один стал отличаться от другого, например:
SELECT
LeadCustomer.CustomerID,Flight.FlightID
FROM LeadCustomer
inner join FlightBooking
ON LeadCustomer.CustomerID = FlightBooking.CustomerID
inner join
Flight ON FlightBooking.FlightID = Flight.FlightID
WHERE Flight.FlightDate <> FlightBooking.BookingTime
Если я ошибаюсь, не могли бы вы объяснить это лучше?