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, поэтому то, что мне нужно, может быть супер легко достижимо или также невозможно... Заранее спасибо за любую помощь, очень признателен.