这两个连接都会得到相同的结果:
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
vs
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
这些陈述在性能或其他方面有什么区别吗?
不同的SQL实现之间有区别吗?
这两个连接都会得到相同的结果:
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
vs
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
这些陈述在性能或其他方面有什么区别吗?
不同的SQL实现之间有区别吗?
当前回答
与OUTER join类似,单词“OUTER”是可选的。LEFT或RIGHT关键字使JOIN成为“OUTER”JOIN。
然而,出于某种原因,我总是使用“OUTER”作为LEFT OUTER JOIN,从不使用LEFT JOIN,但我从不使用INNER JOIN,而只是使用“JOIN”:
SELECT ColA, ColB, ...
FROM MyTable AS T1
JOIN MyOtherTable AS T2
ON T2.ID = T1.ID
LEFT OUTER JOIN MyOptionalTable AS T3
ON T3.ID = T1.ID
其他回答
内部连接=连接
如果在使用JOIN时没有指定类型,则INNER JOIN是默认值。 您还可以使用LEFT OUTER JOIN或RIGHT OUTER JOIN,在这种情况下,单词OUTER是可选的,或者您可以指定CROSS JOIN。
OR
对于INNER JOIN,语法是: 选择…… 从为多 JOIN TableB (换句话说,INNER关键字是可选的——使用或不使用它的结果是相同的。)
与OUTER join类似,单词“OUTER”是可选的。LEFT或RIGHT关键字使JOIN成为“OUTER”JOIN。
然而,出于某种原因,我总是使用“OUTER”作为LEFT OUTER JOIN,从不使用LEFT JOIN,但我从不使用INNER JOIN,而只是使用“JOIN”:
SELECT ColA, ColB, ...
FROM MyTable AS T1
JOIN MyOtherTable AS T2
ON T2.ID = T1.ID
LEFT OUTER JOIN MyOptionalTable AS T3
ON T3.ID = T1.ID
不,没有区别,纯粹的语法糖。
不同的SQL实现之间有区别吗?
是的,Microsoft Access不仅仅允许加入。它需要内部连接。
它们在功能上是等价的,但是INNER JOIN读起来更清楚一些,特别是当查询中包含其他连接类型(例如LEFT、RIGHT或CROSS)时。