使用正确的连接语法将从您的查询中生成此查询
select
p.name, di.fare * p.quantity as passenger_fare
from passenger as p
inner join seat_passenger as sp on sp.pass_id = p.pass_id
inner join seat_info as si on si.seat_id = sp.seat_id
inner join manages as m on m.seat_id = si.seat_id
inner join departure_info as di on di.dept_it = m.dept_id
我建议你转身看看你错过了inner joins
什么left outer joins
select
p.name, di.fare * p.quantity as passenger_fare,
sp.pass_id, si.seat_id, m.seat_id, di.dept_id
from passenger as p
left outer join seat_passenger as sp on sp.pass_id = p.pass_id
left outer join seat_info as si on si.seat_id = sp.seat_id
left outer join manages as m on m.seat_id = si.seat_id
left outer join departure_info as di on di.dept_it = m.dept_id
实际上,您甚至可以删除未使用的连接(如果您没有错过来自 seat_info 的一些记录):
select
p.name, di.fare * p.quantity as passenger_fare
from passenger as p
inner join seat_passenger as sp on sp.pass_id = p.pass_id
inner join manages as m on m.seat_id = sp.seat_id
inner join departure_info as di on di.dept_it = m.dept_id