Допустим, у меня есть три таблицы в базе данных PostgreSQL. A films
таблица
+-------------+----------+
| film | theme_id |
+-------------+----------+
| film name 1 | 23 |
| film name 2 | 56 |
| film name 3 | 11 |
| film name 4 | 12 |
+-------------+----------+
a themes_old
таблица
+----------+------------+
| theme_id | streams_on |
+----------+------------+
| 23 | Spotify |
| 56 | Tidal |
+----------+------------+
и таблица themes_new
+----------+------------+
| theme_id | streams_on |
+----------+------------+
| 11 | Spotify |
| 56 | Tidal |
+----------+------------+
Я хочу присоединиться ко второму и третьи таблицы к первой, но без повторного столбца streams_on. Например, если бы я запустил
SELECT *
FROM films as f
LEFT JOIN themes_old as to ON f.theme_id=to.theme_id
LEFT JOIN themes_new as tn on f.theme_id=tn.theme_id
, я бы получил
+-------------+----------+------------+------------+
| film | theme_id | streams_on | streams_on |
+-------------+----------+------------+------------+
| film name 1 | 23 | Spotify | [null] |
| film name 2 | 56 | Tidal | Tidal |
| film name 3 | 11 | [null] | Spotify |
| film name 4 | 12 | [null] | [null] |
+-------------+----------+------------+------------+
Но я хочу объединить последние два столбца так, чтобы был только один столбец streams_on, такой что для любой строки, если один streams_on значение столбца равно нулю, возьмите другое, если оба значения не равны нулю, возьмите, возможно, первое и если оба значения равны нулю, то по умолчанию используется значение ноль. Это должно привести к следующей таблице:
+-------------+----------+------------+
| film | theme_id | streams_on |
+-------------+----------+------------+
| film name 1 | 23 | Spotify |
| film name 2 | 56 | Tidal |
| film name 3 | 11 | Spotify |
| film name 4 | 12 | [null] |
+-------------+----------+------------+
Я чувствую, что это работа для самостоятельного объединения или что-то в этом роде, но я не могу найти много путем поиска. Любые идеи? Кстати, оба столбца streams_on должны рассматриваться как перечисления.