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

Sql 使用交叉连接?

Sql 使用交叉连接?,sql,Sql,我正在根据进行测试,以验证逻辑 我遇到了这个SQL,不知道如何处理它 SELECT ALL * FROM tab1 cor0 CROSS JOIN tab1 USING col1, col2, tab2 AS cor1; 据我所知,交叉连接将两个表中的所有行连接起来,所以我猜使用部分没有任何影响 我的结论正确吗?:对于coss连接,可以忽略使用部分吗?这只是SQLite和MySQL的一个奇怪之处。交叉联接应该产生笛卡尔积,而不应该采用USING或ON子句 但是,SQLite语法允许带有交叉连接

我正在根据进行测试,以验证逻辑

我遇到了这个SQL,不知道如何处理它

SELECT ALL * FROM tab1 cor0 CROSS JOIN tab1 USING col1, col2, tab2 AS cor1;
据我所知,交叉连接将两个表中的所有行连接起来,所以我猜使用部分没有任何影响


我的结论正确吗?:对于coss连接,可以忽略使用部分吗?这只是SQLite和MySQL的一个奇怪之处。交叉联接应该产生笛卡尔积,而不应该采用USING或ON子句

但是,SQLite语法允许带有交叉连接的ON或USING子句。在这种情况下,它的行为类似于内部联接

此外,SQLite允许您为其他类型的联接省去ON/USING子句。在这种情况下,它们的行为类似于交叉连接

我的建议是:不要学习这种高度非标准的语法。使用以下规则:

始终与内部和外部联接一起使用。 切勿在交叉连接上使用/与交叉连接一起使用。 避免自然连接。因为这没有列出连接键,所以代码的可维护性要低得多,容易发生细微错误,并且如果基础表发生变化,代码的含义也会发生变化。
这只是SQLite和MySQL的一个奇怪之处。交叉联接应该产生笛卡尔积,而不应该采用USING或ON子句

但是,SQLite语法允许带有交叉连接的ON或USING子句。在这种情况下,它的行为类似于内部联接

此外,SQLite允许您为其他类型的联接省去ON/USING子句。在这种情况下,它们的行为类似于交叉连接

我的建议是:不要学习这种高度非标准的语法。使用以下规则:

始终与内部和外部联接一起使用。 切勿在交叉连接上使用/与交叉连接一起使用。 避免自然连接。因为这没有列出连接键,所以代码的可维护性要低得多,容易发生细微错误,并且如果基础表发生变化,代码的含义也会发生变化。
这在任何DBMS中都有效吗?在任何DBMS中都有效吗?