SQL: Объединить информацию из двух таблиц

У меня есть три реляционные таблицы postgres (гипертаблицы временных шкал), и мне нужно получить данные в CSV-файл, но я изо всех сил пытаюсь привести их к нужному мне формату. Я использую django в качестве фреймворка, но мне нужно решить эту проблему с помощью необработанного SQL.

Представьте, что у меня есть 2 таблицы: drinks и consumption_data.

Таблица напитков выглядит следующим образом:

 name    | fieldx | fieldy 
---------+--------+------
 test-0  |        | 
 test-1  |        | 
 test-2  |        | 

Таблица данных о потреблении выглядит следующим образом:

          time          | drink_id    |  consumption 
------------------------+-------------+------------------------------
 2018-12-15 00:00:00+00 |           2 |                          123
 2018-12-15 00:01:00+00 |           2 |                          122
 2018-12-15 00:02:00+00 |           2 |                          125

Моя целевая таблица должна объединить эти две таблицы и вернуть мне все данные о потреблении с названиями напитков.

          time          | test-0      |  test-1 | test-2
------------------------+-------------+---------+-------
 2018-12-15 00:00:00+00 |         123 |  123    |  22
 2018-12-15 00:01:00+00 |         334 |  122    |  32
 2018-12-15 00:02:00+00 |         204 |  125    |  24

У меня есть все идентификаторы напитков и все названия, но их сотни или тысячи.

Я попробовал сделать это, сначала запросив данные о потреблении одного напитка и переименовав столбец: SELECT time, drink_id, "consumption" AS test-0 FROM heatflowweb_timeseriestestperformance WHERE drink_id = 1;

Результат:

          time          | test-0      | 
------------------------+-------------+
 2018-12-15 00:00:00+00 |         123 | 
 2018-12-15 00:01:00+00 |         334 |  
 2018-12-15 00:02:00+00 |         204 |  

Но теперь мне придется добавить сотни столбцов, и я не уверен, как это сделать. С помощью UNION? Но я не хочу писать тысячи операторов объединения...

Может быть, есть более простой способ достичь того, что я хочу? Я не эксперт по SQL, поэтому то, что мне нужно, может быть супер легко достижимо или также невозможно... Заранее спасибо за любую помощь, очень признателен.

Вернуться на верх