mysql - 尽管使用了连接,为什么这被认为是一个简单的选择?

标签 mysql sql database join

如果我在我的 MySQL 数据库中运行这个查询:

EXPLAIN EXTENDED
SELECT
    *
FROM
    Orders
    NATURAL JOIN Order_Details
WHERE
    QuotedPrice > 1000
    AND
    OrderDate BETWEEN '2012-10-01' AND '2012-10-31';

它表示两个数据库的 select_type 都是“SIMPLE”。

据我所知,SIMPLE select_type 表明没有使用任何连接,但当然,该语句中有一个自然连接。

有人可以向我解释这背后可能的原因吗?

最佳答案

SIMPLE 只是意味着表访问没有使用任何 UNION 操作,也没有使用任何子查询。

SIMPLE 建议的内容放在一边。并按照 MySQL Reference Manual 所说的去做。 select_type 列中出现的值的简要说明:

http://dev.mysql.com/doc/refman/5.7/en/explain-output.html

关于mysql - 尽管使用了连接,为什么这被认为是一个简单的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40097201/

相关文章:

mysql - 无法更改 MySql 例程

mysql - 复杂的SQL语句

mysql - JOIN 返回太多结果

java - 哪种方法更适合在 sqlite 数据库中存储键值对?

SQL - 混合 AND 和 OR

php - 使用 MySql 查看我 friend 的共同好友

php - 更新php脚本中不存在的地方

MySQL RegExp 从 RegExp 获得错误 'repetition-operator operand invalid'

sql - 相当于SQL Server中Oracle的RowID

java - Hibernate异常(一对多关系): reference to unknown entity