Народ, большое спасибо, выражаю благодарность https://qna.habr.com/user/mletov в джоине действительно не хватало одного условия.
Вот как выглядит правильный запрос.
select t.passenger_name, tf.ticket_no, tf.flight_id, f.scheduled_departure, f.scheduled_arrival, f.departure_airport,
f.arrival_airport from tickets t
join ticket_flights tf on t.ticket_no = tf.ticket_no
join flights f on tf.flight_id = f.flight_id
join boarding_passes bp on tf.ticket_no = bp.ticket_no and tf.flight_id = bp.flight_id
where f.status in ('Scheduled', 'On Time', 'Delayed') limit 20;
Я неправильно притянул по первичному ключу.
Про то, что человек 2 места занимает, я думал, это шутка от разрабов базы и хотел пошутить на тему полноты пассажиров, но там места вообще не рядом. Например у Людмилы левая булка на 24E, а правая на 28A.
mletov, К сожалению, нет, не уникальный для таблиц ticket_flights и boarding_passes. Как раз это меня и смущало. Что в таблице tickets столбец ticket_no первичный ключ, а в соседней таблице уже нет, просто это меня дико смущает в этой базе, хотя она учебная, в книжечке и вроде как выверенная.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Вот как выглядит правильный запрос.
select t.passenger_name, tf.ticket_no, tf.flight_id, f.scheduled_departure, f.scheduled_arrival, f.departure_airport,
f.arrival_airport from tickets t
join ticket_flights tf on t.ticket_no = tf.ticket_no
join flights f on tf.flight_id = f.flight_id
join boarding_passes bp on tf.ticket_no = bp.ticket_no and tf.flight_id = bp.flight_id
where f.status in ('Scheduled', 'On Time', 'Delayed') limit 20;
Я неправильно притянул по первичному ключу.