我有2个表可以用一个键链接。问题是1个表也是时间切片。我只需要从这张表中选择2行,但它们会在不同时间重复出现。所以我想从这个表中选择一个不同的值并将它链接到我的另一个。 我尝试做什么:
SELECT a.firstcolumn,
a.secondcolumn,
b.somecolumn
from table1 a
INNER JOIN (SELECT DISTINCT somecolumn from table2) b
on a.key = b.key
这段代码运行但是我得到的记录太多了(几乎是两倍),所以不同的是,它并没有完成它的工作。 我希望输出包含a.firstcolumn,a.secondcolumn和b.somecolumn
答案 0 :(得分:0)
评论太长了。如果您有时间分片表,则目的是选择值的日期/时间。最近的值通常是end_dt
(缺少更好的术语)将来或NULL
。{/ p>
在不知道您的数据结构的情况下,我希望这样:
SELECT a.firstcolumn, a.secondcolumn, b.somecolumn
FROM table1 a JOIN
b
ON a.key = b.key AND b.end_dt IS NULL;
答案 1 :(得分:0)
也许删除不同的并且取日期字段的最大值(或最小值)将为您提供所需的内容。
SELECT a.firstcolumn,
a.secondcolumn,
b.somecolumn
from table1 a
INNER JOIN (SELECT key, somecolumn, max(date) from table2 group by key, somecolumn) b
on a.key = b.key