Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 无法为完整外部联接的给定查询设计查询计划_Sql_Join_Amazon Redshift - Fatal编程技术网

Sql 无法为完整外部联接的给定查询设计查询计划

Sql 无法为完整外部联接的给定查询设计查询计划,sql,join,amazon-redshift,Sql,Join,Amazon Redshift,这个查询有什么问题? 我试图在红移上执行给定的查询,但我得到错误,无法获得查询计划 我的问题是这样的: 从a1中选择不同的x、y、a2.z 完全外部连接选择1=1上a1 a2的不同z 还有一件事,我可以使用交叉连接而不是完全外部连接,因为我没有连接谓词或where子句 我对Amazon redshift一无所知,但它的语义与原始查询相同,而且更清晰,因此请查看它是否可以为此制定计划 SELECT xy.x, xy.y, z.z FROM (SELECT DISTI

这个查询有什么问题? 我试图在红移上执行给定的查询,但我得到错误,无法获得查询计划

我的问题是这样的:

从a1中选择不同的x、y、a2.z 完全外部连接选择1=1上a1 a2的不同z


还有一件事,我可以使用交叉连接而不是完全外部连接,因为我没有连接谓词或where子句

我对Amazon redshift一无所知,但它的语义与原始查询相同,而且更清晰,因此请查看它是否可以为此制定计划

SELECT xy.x,
       xy.y,
       z.z
FROM   (SELECT DISTINCT x,
                        y
        FROM   a1) xy
       CROSS JOIN (SELECT DISTINCT z
                   FROM   a1) z 

选择一个服务器产品,而不是4个。please.cross join如果其中一个输入为空,那么它就不一样了。实际上,这是因为它们都是a1,所以不可能一边为空,另一边为行。在这种情况下,cross join和完全外部联接之间没有区别吗?正确吗?是的-在这个特定场景中,如果是交叉连接B而不是1=1上的完全连接B,那么如果其中只有一个是空的,那么它们的行为会有所不同,但这不适用于这里!我试试这个。非常感谢。