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

Если я ошибаюсь, не могли бы вы объяснить это лучше?

Другие вопросы по тегам