gpt4 book ai didi

MySQL SELECT 查询中操作的内部顺序

转载 作者:行者123 更新时间:2023-11-29 17:08:53 25 4
gpt4 key购买 nike

MySQL SELECT 查询和关系查询的内部操作顺序是什么?

例如,对单个表的 SELECT 查询:

SELECT `name`
FROM `users`
WHERE `publication_count`>0
ORDER BY `publication_count` DESC

我知道首先会获取所有表字段,然后最后只留下 name 字段。它发生在应用 WHERE 中的条件之前还是之后?何时应用 ORDER BY

使用两个表的关系查询:

SELECT `users`.`name`, `post`.`text` 
FROM `users`, `posts`
WHERE `posts`.`author_id`=`user`.`id`
ORDER BY `posts`.`date` DESC

同样的问题。之后会发生什么? (我知道首先生成的是笛卡尔积)

最佳答案

有关简化规则的示例的处理如下:

 1. FROM     -- all elements in list (including multiple tables)
2. WHERE -- discard rows not matching conditions
3. SELECT -- output rows are computed (not fetched)
4. ORDER BY -- sort output rows

此外,您不应该在 WHERE 条件中使用老式的隐式连接语法。相反,请使用JOIN:

SELECT ...
FROM users
INNER JOIN posts ON users.id = posts.author_id
ORDER BY ...

关于MySQL SELECT 查询中操作的内部顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51952988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com