Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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_Cartesian - Fatal编程技术网

Sql 如果您包含一个表,但未从中选择任何内容,是否会导致笛卡尔连接?

Sql 如果您包含一个表,但未从中选择任何内容,是否会导致笛卡尔连接?,sql,cartesian,Sql,Cartesian,这是笛卡尔连接吗: select dog_t.type dog_t.breed date_t.date from dog_t, cat_t, date_t where dog_t.date_key=date_t.date_key 包含cat_t表是否会导致笛卡尔连接。。。因为它没有连接到任何东西?是的。您需要添加cat\t.date\u key=date\t.date\u key以避免笛卡尔连接 但是对于表cat\u t和dog\u t,仍然存在交叉连接问题。我认为您应该从每个表中合并一个单独

这是笛卡尔连接吗:

select
dog_t.type
dog_t.breed
date_t.date
from
dog_t,
cat_t,
date_t
where
dog_t.date_key=date_t.date_key

包含cat_t表是否会导致笛卡尔连接。。。因为它没有连接到任何东西?

是的。您需要添加
cat\t.date\u key=date\t.date\u key
以避免笛卡尔连接


但是对于表
cat\u t
dog\u t
,仍然存在交叉连接问题。我认为您应该从每个表中合并一个单独的select。

有关更多信息,请参见此问题:这是一个纯粹的假设示例。我想我只是不明白为什么笛卡尔定律会发生。。。sql是否只是它不需要的缓冲区字段?@tylercomp我明白你的意思。但你真的不需要吗?想象一下,如果出于某种黑暗的原因,您需要结果中隐含的
cat\t
信息(添加重复出现的cat\t行)是的,这绝对是一种不好的做法,我只是好奇它实际上会导致笛卡尔连接。帮助我稍微了解一下sql是如何工作的。谢谢,谢谢你的回答!查询中的两个表将导致笛卡尔连接,这就是您必须添加条件的原因。我想说的是笛卡尔连接是sql的工作方式。