首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql - on中的条件与where中的条件

mysql - on中的条件与where中的条件
EN

Stack Overflow用户
提问于 2013-05-23 17:46:11
回答 1查看 48关注 0票数 0

我找不到一个明确的答案,因为我的测试是不确定的:

如果我在连接的表中有一列必须等于常量(或与常量有其他关系),那么将条件放在ON中会更快吗?或者在哪里结束?

示例:

代码语言:javascript
复制
    SELECT * FROM `" . BLABLA . "` as `s`
    JOIN `" . BLABLABLA . "` AS `sDet` ON (`sDet`.`a` > '" . $R['a'] . "'
        AND '" . $R['b'] . "' BETWEEN `sDet`.`c` AND `sDet`.`d`
        AND `s`.`id` = `sDet`.`idDet`
    )
    WHERE `s`.`f` = 'whatever'

代码语言:javascript
复制
    SELECT * FROM `" . BLABLA . "` as `s`
    JOIN `" . BLABLABLA . "` AS `sDet` ON (`s`.`id` = `sDet`.`idDet`)
    WHERE `s`.`f` = 'whatever'
        AND '" . $R['b'] . "' BETWEEN `sDet`.`c` AND `sDet`.`d`
        AND `s`.`id` = `sDet`.`idDet`

我认为第一个版本应该更快,但我不确定。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-05-23 18:05:25

我不太确定哪个更快,但请记住,where和on子句之间的条件并不总是可以互换的。

内部联接

对于内连接,它们是可互换的

外部联接

在外部连接的情况下,它们不一定可以互换。这取决于连接条件的哪一方

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16710602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档