gpt4 book ai didi

Mysql 子查询的执行

转载 作者:行者123 更新时间:2023-11-29 03:42:09 24 4
gpt4 key购买 nike

假设我有这样的查询

SELECT DISTINCT customer_name 
FROM borrower
WHERE customer_name in (SELECT customer_name FROM depositor)

我们可以将以上视为两个查询

一个

SELECT DISTINCT customer_name 
FROM borrower
WHERE customer_name

B

SELECT customer_name 
FROM depositor

哪个先执行?这个规则对所有子查询都一样吗?

我们可以写什么类型的子查询?给我一些开始使用教程链接的指示。

最佳答案

编辑,因为第一个答案是错误的。但是解释是正确的:|

A 首先执行。当子查询相关时,应用上面显示的“所有”子查询。

+----+--------------------+-----------+----------------+---------------+---------------+---------+------+------+----------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+--------------------+-----------+----------------+---------------+---------------+---------+------+------+----------+--------------------------+
| 1 | PRIMARY | borrower | index | NULL | customer_name | 52 | NULL | 6 | 100.00 | Using where; Using index |
| 2 | DEPENDENT SUBQUERY | depositor | index_subquery | customer_name | customer_name | 52 | func | 1 | 100.00 | Using index |
+----+--------------------+-----------+----------------+---------------+---------------+---------+------+------+----------+--------------------------+

顺便说一句。 MySQL 6 将消除此问题,并且两个查询的选择类型都将变为 PRIMARY。参见 1

关于Mysql 子查询的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12543278/

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