对不起,问题的标题有点令人困惑,但我只是找不到简单的方法来总结问题。让我们从一个例子开始。
有一个产品A,我必须监视A的两个特征X和Y。X每天生成一次,而Y每月生成一次。为了节省存储空间,我决定将X,Y放入两个表,即表X和表Y。 因此表X有两列:date和X;表Y有两列:日期和Y。但是,两个表中的日期具有不同的频率。我想让X上的两个表保持连接,但是我需要Y的缺失值来填充上个月的观察结果。
表X为:
date X
---------- -------------
2019-01-01 1
2019-01-02 2
2019-01-02 3
... ...
2019-02-01 32
2019-02-02 33
表Y为:
date Y
---------- -------------
2019-01-01 0
2019-02-01 1
我要查询的表是:
date X Y
---------- ------------- ----------
2019-01-01 1 0
2019-01-02 2 0
2019-01-02 3 0
... ... ...
2019-01-31 31 0
2019-02-01 32 1
2019-02-02 33 1
表X:
表Y:
我要查询的表:
答案 0 :(得分:1)
类似这样的东西:
SELECT x.date,
x.x,
y.y
FROM x
JOIN y
ON YEAR(x.date) = YEAR(y.date)
AND MONTH(x.date) = MONTH(y.date);
答案 1 :(得分:0)
右连接和ORDER BY应该这样做
SELECT x.date, x.X, y.Y
FROM X x
RIGHT JOIN Y y ON YEAR(x.date) = YEAR(y.date) AND MONTH(x.date) = MONTH(y.date)
ORDER BY x.date ASC
答案 2 :(得分:-2)
SELECT
a.Column1,
a.column2,
b.column3
FROM tablename LEFT JOIN anothertable b
ON a.column1 = b.column2;