没有行的表的 CROSS JOIN

Joh*_*kin 0 postgresql join

在定义中;

SELECT * 
from T1, T2
Run Code Online (Sandbox Code Playgroud)

Cross Join:如果T1有N行,T2有M行,结果集会有N×M行。

如果 T2 没有行,则 JOIN 的结果也没有行。

但是,我想要 N 行(来自 T1),我该怎么办?

有什么建议吗?

注意:我想要笛卡尔积,表之间没有共享列。

EzL*_*zLo 7

CROSS JOIN如果两个集合中的任何一个都没有您想要的输出行,则不能使用。您可以FULL JOIN使用始终为真的条件来模拟此行为。

SELECT 
    * 
FROM
    T1
    FULL JOIN T2 ON true
Run Code Online (Sandbox Code Playgroud)