繁体   English   中英

PostgreSQL对一个表中的每一行联接另一表中的所有行

[英]PostgreSQL for each row from one table join all rows from another table

在表中A我从日期2014-01-012014-12-31

 action_date
 2014-01-01
 2014-01-02
 2014-01-03
 ...
 2014-12-31

在表B我有一些信息,例如

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

如果activation_date<=action_date<=deletion_date我想将B表的行连接到每个A表的行

例如

 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语句的左联接,仅在where条件下使用。 不幸的是,它不起作用。

您可以在join条件中使用between运算符:

SELECT a.action_date, b.*
FROM   b
JOIN   a ON a.action_date BETWEEN b.activation_date AND b.deletion_date

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM