这 两 个 联接 将 得到 相同 的 结果 :
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
中 的 每 一 个
对比
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
格式
这 两 种 说法 在 表现 或 其他 方面 有 什么 不同 吗 ?
不同 的 * * SQL * * 实现 之间 是否 有 差异 ?
这 两 个 联接 将 得到 相同 的 结果 :
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
中 的 每 一 个
对比
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
格式
这 两 种 说法 在 表现 或 其他 方面 有 什么 不同 吗 ?
不同 的 * * SQL * * 实现 之间 是否 有 差异 ?
6条答案
按热度按时间taor4pac1#
它们在功能上是等效的,但是
INNER JOIN
读起来可能更清楚一些,特别是当查询中包含其他连接类型(即LEFT
或RIGHT
或CROSS
)时。fiei3ece2#
不,没有区别,纯粹的syntactic sugar。
k0pti3hp3#
内部 联接 = 联接
您 也 可以 使用 LEFT OUTER JOIN 或 RIGHT OUTER JOIN , 在 这种 情况 下 , OUTER 一 词 是 可选 的 , 或者 您 可以 指定 CROSS JOIN 。
或
中 的 每 一 个
(In换 句 话说 , INNER 关键 字 是 * * optional * * - - 无论 是否 使用 它 , 结果 都 是 相同 的 。 )
4nkexdtk4#
不同的SQL实现之间是否存在差异?
是的,Microsoft Access不仅允许
join
,它还需要inner join
。hjzp0vay5#
与
OUTER JOINs
类似,单词"OUTER"
也是可选的,是LEFT
或RIGHT
关键字使JOIN
成为"OUTER" JOIN
。然而,由于某种原因,我总是像在
LEFT OUTER JOIN
中那样使用"OUTER"
,而从不使用LEFT JOIN
,但我从不使用INNER JOIN
,而是只使用"JOIN"
:pengsaosao6#
正如 其他 答案 已经 指出 的 那样 , 在 你 的 例子 中 没有 区别 。
语法 的 相关 位 是 documented here
中 的 每 一 个
显示 所有 这些 都 是 可选 的 。
INNER
指定 返回 所有 匹配 的 行 对 。 丢弃 两 个 表 中 不 匹配 的 行 。 * * 未 指定 联接 类型 时 , 这 是 默认 值 * * 。语法 还 指出 , 有 一 次
INNER
* 是 必需 的 。请 参见 下面 的 示例
格式