基于级联SELECT的外连接

时间:2012-03-12 19:44:37

标签: sql postgresql concatenation outer-join

也许数据框架从一开始就存在缺陷,但是......我需要在两个表上进行out连接,但我需要在第二个表的第二列连接中进行连接。

例如,表一

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

表二

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

我基本上需要将pt1 + pt2组合为外键。

这在很大程度上是学术性的,因为我可以在数据集(不是我的原始创建)中添加一个列,即连接,但是,我想知道是否可能。

Postgres版本8.4.8

cheers.bo

2 个答案:

答案 0 :(得分:1)

您始终可以创建子查询并针对子查询执行连接:

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

答案 1 :(得分:1)

连接条件几乎可以是任何表达式;特别是,您可以包含字符串连接:

select ...
from t1 left outer join t2 on t1.key = t2.pt1 || t2.pt2
where ...