gpt4 book ai didi

mysql - 这个子选择是在 where 子句之前还是之后执行?

转载 作者:行者123 更新时间:2023-11-29 08:27:12 26 4
gpt4 key购买 nike

表 A 有 500'000 条记录:

id, text, created, b_id

表 B 有 20'000 条记录:

id, text

A.b_id is FK to b.id

所以当我执行以下操作时:

SELECT text, created, (SELECT b.text FROM b WHERE b.id = A.b_id) FROM a WHERE created < now()

或者也

SELECT text, created, (SELECT b.text FROM b WHERE b.id = A.b_id) FROM a LIMIT 0,10

子选择是否会在 WHERE 子句之后执行,因此实际上仅在记录上执行 where created < now()分别。仅在前十条记录上执行,还是在排除发生之前对每条记录执行?

谢谢!

最佳答案

您应该了解 SQL 连接,例如:

SELECT a.text, a.created, b.text
FROM a JOIN b ON b.id = a.b_id
WHERE a.created < NOW()
LIMIT 0, 10

但是,要回答有关相关子查询的问题:

Will the subselect be executed after the WHERE-clause, so actually be only performed on records where created < now() resp. only on the first ten records or will it be executed on every record before the exclusion happens?

在应用其过滤器/限制后,子查询将仅针对父查询返回的记录进行评估。

关于mysql - 这个子选择是在 where 子句之前还是之后执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17631807/

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