gpt4 book ai didi

MySQL关于FROM关键字的语法澄清

转载 作者:行者123 更新时间:2023-11-30 01:15:55 25 4
gpt4 key购买 nike

我使用 this MySQL doc page 构建了以下查询我通过this StackOverflow question.找到的

它给了我我想要的东西:每个人 key 都有一条记录,以及该人参与的最大(最近)匹配 key 。

但我不明白“s1”和“s2”的用途,也不明白 FROM 行中使用的结构(而且因为我不知道它叫什么,所以很难搜索它。)这个查询实际上发生了什么?

SELECT personforeignkey, matchforeignkey

FROM peoplematchesheroes s1

WHERE matchforeignkey = (SELECT MAX(s2.matchforeignkey)
FROM peoplematchesheroes s2
WHERE s1.personforeignkey = s2.personforeignkey)

注意:我知道这个查询效率低下,但我想在尝试优化之前了解相关子查询的构造。

最佳答案

s1 和 s2 是 table aliases ,在本例中,两者都针对同一个表“peoplematchesheroes”。 s1用作外部查询的别名,s2用作内部相关子查询的别名。

没有必要为相关子查询使用表别名,但在您的情况下,由于您的内部查询也引用与外部查询相同的表,因此您需要为它们添加别名。将其视为范围的解析,因为否则将无法分辨您所指的是哪个“personforeignkey”字段 - 来自表相关子查询的字段还是来自外部字段的字段。

希望这是有道理的。

关于MySQL关于FROM关键字的语法澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19063589/

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