Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 加入Oracle:在=符号的哪一侧的哪个字段?_Sql_Oracle_Join_Ansi 92 - Fatal编程技术网

Sql 加入Oracle:在=符号的哪一侧的哪个字段?

Sql 加入Oracle:在=符号的哪一侧的哪个字段?,sql,oracle,join,ansi-92,Sql,Oracle,Join,Ansi 92,使用ANSI-89(旧)或ANSI-92(“新”)方法连接表格时,将两个连接表格中的字段放置在哪一侧是否重要 例如,做以下事情是否更好: From TABLE_1 A Join TABLE_2 B on A.ID = B.ID 还是下面的更好 on B.ID = A.ID 这仅仅是美学吗?或者它会影响连接的工作方式吗 编辑:为了进一步澄清,关于左连接呢?例如: From TABLE_1 A Left Join TABLE_2 B on A.ID = B.ID

使用ANSI-89(旧)或ANSI-92(“新”)方法连接表格时,将两个连接表格中的字段放置在哪一侧是否重要

例如,做以下事情是否更好:

From 
TABLE_1 A

Join
TABLE_2 B
    on A.ID = B.ID
还是下面的更好

    on B.ID = A.ID
这仅仅是美学吗?或者它会影响连接的工作方式吗

编辑:为了进一步澄清,关于左连接呢?例如:

From
TABLE_1 A

Left Join
TABLE_2 B
    on A.ID = B.ID
这和我的一样吗

    on B.ID = A.ID

但是,如果使用ANSI-89
其中A.ID=B.ID(+)
其中B.ID=A.ID(+)
不同,因为第二个将A连接到B上?

因此
=
运算符是对称的,因此
A.ID=B.ID
B.ID=A.ID
完全相同。就个人而言,我更喜欢将驱动表中的字段(从子句中的
字段)放在操作符的左侧,但这纯粹是一种审美偏好

这没什么区别。顺序唯一重要的时候是当你做左和右外部连接时,但是那些关键字都落在ON关键字之前。

我会更新原始问题,但是如果你有左连接,并且做了
B.ID=a.ID
,你是说它仍然和ANSI-92中的
a.ID=B.ID
一样工作吗?但对于ANSI-89,顺序确实很重要(即
A.ID=B.ID(+)
B.ID=A.ID(+)不同
因为它表明您将A连接到B上,而不是B连接到A上?是的,在任何情况下,A.ID=B.ID都可以与B.ID=A.ID互换,在这个选择中没有什么超出美学的。我可能不应该提到左连接。从表_1中,左外连接表_2 B将不同于表_2 B左外连接表_1A、 但这与你的问题无关,所以我应该省略它。我通常会同意,使用ANSI-89看起来更好。但是,当使用ANSI-92时,我发现,特别是当我的From变成
T1在T2.ID=T1.ID和T2.TYPE='X'和T2.DATE=sysdate
等上连接T2时,更容易识别正在使用的表。T他
(+)
应该应用于外部联接表上的列,因此它应该是
A.ID=B.ID(+)
vs。