【问题标题】:Outer Join Based On Concatenated SELECT基于串联SELECT的外连接
【发布时间】:2012-03-29 05:55:07
【问题描述】:

所以也许数据框架从一开始就有缺陷,但是..我需要对两个表进行外连接,但我需要基于第二个表中的 2 列的串联来完成。

例如,表一

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

表二

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

我基本上需要使用pt1+pt2组合作为外键。

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

Postgres 版本 8.4.8

干杯.bo

【问题讨论】:

    标签: sql postgresql concatenation outer-join


    【解决方案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
    

    【讨论】:

    • 我也在考虑这些方面......连接更加直接。谢谢!
    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2016-11-22
    • 2018-12-08
    相关资源
    最近更新 更多