Зацикливание таблицы, выбор данных из других таблиц и возврат комбинированных данных - PullRequest
0 голосов
/ 31 марта 2020

Я использую PG SQL. У меня есть несколько схем в базе данных, в одной схеме у меня есть таблица, содержащая имена схем в разных строках. У меня одинаковый набор таблиц в каждой схеме с разными данными. Я хочу провести l oop через таблицу (например, таблицу A), которая содержит имя всей схемы, и выбрать данные из таблицы B из каждой схемы, а затем вернуть объединенный результат.

Table A
id schema_name
1   schema_A
2   schema_B
3   schema_C

schema_A.table_B
//some data in table

schemaB.table_B
// some data in table 

Я пытаюсь создать запрос, который будет выводить результат объединения table_B из всей схемы.

1 Ответ

0 голосов
/ 31 марта 2020

Это будет выглядеть так:

SELECT
  COALESCE(sAtB.Value1, sBtB.Value1, sBtC.Value1) as value1_from_some_schema,
  COALESCE(sAtB.Value2, sBtB.Value2, sBtC.Value2) as value2_from_some_schema
  ...
FROM
  schemaA.tableA tA
  LEFT JOIN schemaA.tableB sAtB ON tA.schema_name = 'schema A' AND tA.id = sAtB.id
  LEFT JOIN schemaB.tableB sBtB ON tA.schema_name = 'schema B' AND tA.id = sBtB.id
  LEFT JOIN schemaC.tableB sCtB ON tA.schema_name = 'schema C' AND tA.id = sCtB.id
  ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...