在表A
中,我有从2014-01-01
到2014-12-31
的日期
action_date
2014-01-01
2014-01-02
2014-01-03
...
2014-12-31
在表中我有一些信息
id name action_date deletion_date
1 nik 2013-01-01 2014-02-03
2 tom 2014-06-02 2014-06-30
3 lola 2013-12-30 2014-01-01
如果
B
例如
action_date id name action_date deletion_date
2014-01-01 1 nik 2013-01-01 2014-02-03
2014-01-01 3 lola 2013-12-30 2014-01-01
2014-01-02 1 nik 2013-01-01 2014-02-03
2014-01-03 1 nik 2013-01-01 2014-02-03
[...]
2014-02-03 1 nik 2013-01-01 2014-02-03
2014-06-02 2 tom 2014-06-02 2014-06-30
2014-06-03 2 tom 2014-06-02 2014-06-30
[...]
2014-06-03 2 tom 2014-06-02 2014-06-30
我尝试使用不带on语句的left join,只使用where条件。不幸的是,它不起作用。
最佳答案
您可以在between
条件下使用join
运算符:
SELECT a.action_date, b.*
FROM b
JOIN a ON a.action_date BETWEEN b.activation_date AND b.deletion_date
关于sql - PostgreSQL对一个表中的每一行联接另一表中的所有行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28601422/