gpt4 book ai didi

mysql - MySQL 中带有 max() 的子查询错误

转载 作者:行者123 更新时间:2023-11-29 04:59:17 29 4
gpt4 key购买 nike

我正在尝试使用 max() 在 MySQL 中进行子查询,但我一直遇到错误。查询的要点如下(尽管我更改了字段名称)。

select table1.field1, table1.field2, table2.field3, table2.field4, table3.field5, 
(select max(age)
from age_table
where age_table.person = table2.person)
from table1
inner join table2 on table2.person = table1.person
inner join table3 on table3.person = table1.person
inner join age_table on age_table.person = table1.person

当我尝试这个时,我得到一个指向

的语法错误

'from age_table where age_table.person=table2.person'

...但我不知道问题出在哪里。

最佳答案

使用表别名来区分表,而不必使用完整的表名:

SELECT t1.field1, t1.field2, t2.field3, t2.field4, t3.field5, 
(SELECT MAX(at.age)
FROM AGE_TABLE at
WHERE at.person = t2.person) AS max_age
FROM TABLE1 t1
JOIN TABLE2 t2 ON t2.person = t1.person
JOIN TABLE3 t3 ON t3.person = t1.person

我删除了似乎是 AGE_TABLE 的冗余 JOIN,因为它没有在 SELECT 子句中使用。

为派生列值定义列别名也是一个好习惯 - 使它们更易于引用。有关示例,请参见“max_age”。

关于mysql - MySQL 中带有 max() 的子查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3304174/

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