gpt4 book ai didi

php - 从相互关联的 MySQL 表中获取最大值

转载 作者:行者123 更新时间:2023-11-29 02:35:08 25 4
gpt4 key购买 nike

我正在尝试使用 LEFT JOIN 统一一对查询,以便我可以在所需的列上执行 ORDER BY

表A与表B具有排他性的一对多关系,表B与表C具有排他性的一对多关系。

我想为表 A 中的每一行获取表 C 中某列的最大值。

我曾经拥有的是:

$tableA = SELECT * FROM tableA;
for each row in $tableA {
$maxValue = SELECT MAX(value) FROM tableC WHERE tableB_id IN (SELECT tableB_id FROM tableB WHERE tableA_id={$row['tableA_id']}) GROUP BY tableB_id;
}

现在我的思路是:

SELECT * FROM tableA LEFT JOIN (SELECT tableA_id, MAX(max_c_value) FROM (SELECT tableB_id, MAX(value) max_c_value FROM tableC GROUP BY tableB_id) t GROUP BY tableA_id) USING(tableA_id)

但我知道那是胡言乱语。我不知道从这里去哪里。我发现很难解释这个问题,抱歉。

最佳答案

SELECT A.ID, MAX(C.MyField) as CField
FROM A
LEFT OUTER JOIN B
ON A.ID = B.A_ID
LEFT OUTER JOIN C
ON B.ID = C.B_ID
GROUP BY A.ID

如果没有对应的行,您将获得 CField 的空值。

关于php - 从相互关联的 MySQL 表中获取最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6508443/

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