您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JOIN的ON子句中引用的表的顺序重要吗?

JOIN的ON子句中引用的表的顺序重要吗?

JOIN可以通过将表以正确的顺序放在FROM子句中来强制执行顺序:

这将在使用索引b.id

    SELECT  a.Name, b.Status
FROM    a
STRAIGHT_JOIN
        b
ON      b.ID = a.StatusID

这将在使用索引a.StatusID

    SELECT  a.Name, b.Status
FROM    b
STRAIGHT_JOIN
        a
ON      b.ID = a.StatusID

这将在上使用索引b.id或在上建立哈希表b

    SELECT  /*+ ORDERED */
        *
FROM    a
JOIN    b
ON      b.ID = a.StatusID

这将在上使用索引a.StatusID或在上建立哈希表a

    SELECT  /*+ ORDERED */
        *
FROM    b
JOIN    a
ON      b.ID = a.StatusID

这将在上使用索引b.id或在上建立哈希表b

    SELECT  *
FROM    a
JOIN    b
ON      b.ID = a.StatusID
OPTION (FORCE ORDER)

这将在上使用索引a.StatusID或在上建立哈希表a

    SELECT  *
FROM    b
JOIN    a
ON      b.ID = a.StatusID
OPTION (FORCE ORDER)

优化器提示用于解决优化器中的问题。我们宁愿报告并解决问题。

至于比较的顺序,在任何RDBMSAFAIK中都没有关系。

尽管我个人总是尝试估计要搜索的列,然后将此列放在左侧(因为它看起来像是lvalue)。

有关更多详细信息,请参

其他 2022/1/1 18:38:08 有405人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶