Фактически вы перекрестно объединяете таблицы, но вы должны выполнить соединение INNER
или LEFT
на основе связанных столбцов таблиц, которые, как я полагаю, должны иметь такие имена, как flight_id
:
select *, (f.Capacity - b.Tickets) tickets_left
from tblFlights f inner join tblBookings b
on b.flight_id = f.flight_id
where (f.Capacity - b.Tickets) > 0
Я сохранил предложение where
, потому что вы используете его в своем коде.
Если отношение tblFlights
и tblBookings
не равно 1:1
, вам также потребуется агрегирование:
select f.*, (f.Capacity - coalesce(b.Tickets, 0)) tickets_left
from tblFlights f left join (
select flight_id, sum(Tickets) Tickets
from tblBookings
group by flight_id
) b on b.flight_id = f.flight_id