Внешнее соединение на основе каскадного SELECT - PullRequest
0 голосов
/ 12 марта 2012

Так что, возможно, структура данных с самого начала имеет недостатки, но .. Мне нужно выполнить объединение out для двух таблиц, но мне нужно сделать это на основе объединения двух столбцов и второй таблицы.

Например, первая таблица

title  |  key
-------+-------
foo    | Bar1

вторая таблица

subcat  | pt1 | pt2
--------+-----+-----
kitty   | Bar | 1

Мне в основном нужно использовать pt1 + pt2 в качестве внешнего ключа.

Это в значительной степени академично, так как я могу добавить столбец к набору данных (не мое первоначальное создание), который является конкатенацией, однако я хотел знать, возможно ли это.

Postgres версия 8.4.8

cheers.bo

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Условие соединения может быть практически любым выражением;в частности, вы можете включить конкатенацию строк:

select ...
from t1 left outer join t2 on t1.key = t2.pt1 || t2.pt2
where ...
1 голос
/ 13 марта 2012

Вы всегда можете создать подзапрос и выполнить объединение с подзапросом:

SELECT t1.foo, t1.key, t3.subcat FROM table1
JOIN (SELECT t2.pt1 || t2.pt2 AS ptjoined, t2.subcat 
      FROM tabletwo AS t2) as t3
ON t3.ptjoined = t1.key
...