Как сделать так, чтобы представление отображалось из 2 таблиц как 1 таблица со строками в виде столбцов - PullRequest
0 голосов
/ 23 мая 2018

У меня есть 2 таблицы:

CREATE TABLE public.objects
(
  id bigint NOT NULL DEFAULT nextval('objects_id_seq'::regclass),
  value text,
  CONSTRAINT objects_pkey PRIMARY KEY (id)
);
CREATE TABLE public.relation
(
  id1 bigint,
  id2 bigint,
  multiplier integer
);

В таблице объектов хранятся данные о любом объекте, а в таблицах отношений хранятся отношения между объектами через их идентификаторы, а множителем являются данные об отношениях.

Пожалуйста, помогите сделать запрос, чтобы отобразить эту простую таблицу с объектами в виде столбцов и строк и множителем в качестве значений отношений (столбец и строка)

Как это

Comps and Products like objects and values like multiplier

Композиты и продукты как объекты и значения как множитель.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 24 мая 2018

@ Фахад Анжум Тханс ....

SELECT * FROM crosstab('select o.value, o1.value, r.multiplier::text FROM objects as o, objects as o1, relation as r 
    where 
        o.id=r.id1 and
        o1.id = r.id2')
    AS ct(com text, P1 text, P2 text, P3 text);

Это работа ...

...