У меня есть таблица в базе данных PostgreSQL 9.2.24:
CREATE TABLE episodes_list (
mid serial PRIMARY KEY -- movie id
, title text NOT NULL
, is_movie integer NOT NULL -- 1 for movie, 0 for episode
);
Мне нужно отображать названия эпизодов слева, названия всех фильмов справа (даже те, которые не имеют эпизодов).).
103 | Microcosmos (high quality) | 1
103 | Snails' sexual act | 0
103 | Landing | 0
Вот несколько записей.Так, например.«Микрокосмос» должен быть справа дважды, с половым актом улитки и приземлением слева.Вот как это должно выглядеть:
Landing | Microcosmos (high quality)
Snails' sexual act | Microcosmos (high quality)
Я написал что-то вроде этого:
select e1.title, e2.title from episodes_list e1 right join episodes_list e2 on e1.is_movie = 0 and e2.is_movie = 1 and e1.mid = e2.mid;
Но он по-прежнему показывает правильные заголовки эпизодов, а не только названия фильмов (поэтому яЯ получаю дополнительные строки, которые я не должен получать).Так это выглядит так: Но это выглядит так:
Landing | Microcosmos (high quality)
Snails' sexual act | Microcosmos (high quality)
| Snails' sexual act
Что я здесь не так делаю и как должен выглядеть запрос?