【发布时间】:2020-12-21 23:17:52
【问题描述】:
我在Redshift 有 2 个表,如下:
T1:
QID EID
Q1 a.1,a.2
Q2 a.5,a.4,a.8
Q3 a.7
Q4 a.3,a.5
和
T2:
EIDs
a.1
a.2
a.4
a.7
我只想从T1 中选择包含T2.EIDs 中任何可用值的记录。
因此,如果T2.EIDs 中存在的任何值在逗号分隔字段T1.EID 中可用,那么我想从T1 中选择该记录。对于给定的示例,这是我想要的结果集:
QID EID
Q1 a.1,a.2
Q2 a.5,a.4,a.8
Q3 a.7
我知道 LIKE 和 SIMILAR TO 子句会在这里发挥作用,但我似乎无法想出让它起作用的东西。
最终的查询可能类似于:
SELECT T1.*
FROM T1 JOIN T2 ON <cannot think of a proper join condition>
任何帮助将不胜感激。
【问题讨论】:
-
您有机会修复损坏的数据模型吗?这是解决这个问题的唯一正确方法。
-
@a_horse_with_no_name 不幸的是,我现在无法修复数据模型。但是下面发布的答案可以在不更改数据模型的情况下解决问题。
标签: sql csv subquery amazon-redshift sql-like