MySQL中'excludes'的作用是什么?DELETE语句中如何理解它?
解答:
excludes 是子查询的别名,不是MySQL关键字 首先明确:你看到的excludes根本不是MySQL的特殊语法或关键字,它只是用户自定义的子查询别名而已。
拆解代码逻辑
这段DELETE语句的结构可以拆成两部分理解:
- 括号内是一个子查询,它筛选出了一批特定的
field值,这个子查询被命名为excludes - 主DELETE语句通过
JOIN excludes USING(field),将table_A中匹配到这些field的记录关联起来,最终删除这些匹配的记录
等价直观写法
把别名移到子查询括号末尾,就是你熟悉的常规写法了:
DELETE table_A FROM table_A JOIN ( SELECT DISTINCT table_A.field FROM table_A JOIN table_B USING (field) LEFT JOIN table_C USING (field) WHERE table_C.field IS NULL AND table_B.amount <> 0 ) excludes -- 别名位置调整后,和常规写法一致 USING(field)
为什么搜不到相关信息?
因为它只是用户自定义的别名,换成temp、to_delete这类名字完全不影响功能,MySQL官方文档自然不会收录这种自定义内容。
内容的提问来源于stack exchange,提问作者ComputersAreNeat
相关产品推荐
相关产品推荐

