gpt4 book ai didi

mysql - 使 where 子句中同一个表中的同一列相等

转载 作者:行者123 更新时间:2023-11-29 07:49:58 25 4
gpt4 key购买 nike

可能这是一个愚蠢的问题,但我真的很难理解下面的 SQL 查询。

所以我正在做这个练习:拥有不少于 amountDue 的 spy 的代号是什么具有相同 spy 大师的 spy 的 amountDue 的平均值?

表格如下:

codeName    firstName   lastName    dateOfBirth gender  mark                amountDue   spymaster   bankAccount
007 James Bond 01-12-72 M Mole on chin 5050 Q 23456
bud Fanny Charleston 31-07-83 F Scar on cheek 25.67 Q 34567
freddie John Smith 05-05-54 M One finger missing 312.5 M 45678

解决这个问题的代码是:

select codeName 
from Spy as S1
where amountDue >=
(select avg(amountDue)
from Spy as S2
where S1.spymaster = S2.spymaster)

我不明白的是 WHERE 子句中的条件。如果有人能为我解释这一点,我将不胜感激。

谢谢,钼

最佳答案

select codeName 
from Spy as S1 --outer
where amountDue >=
(select avg(amountDue)
from Spy as S2 --inner
where S1.spymaster = S2.spymaster)

当执行以上两行时,您将从 spy 那里获取所有代号,但是当您应用 amountDue 大于等于您检索的金额平均值(其中 s1 和 s2 spy 大师相同)的条件时。意味着您用内部值检查外部值。当值相同时,这些代号将显示。

我与您分享了我的理解,如果您有更多这方面的信息,请告诉我,这对我很有帮助!

关于mysql - 使 where 子句中同一个表中的同一列相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26750604/

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