gpt4 book ai didi

MySQL:每个组的另一个最大值?两张 table

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

我的数据库跟踪用户已完成的部分:

表“用户”:

id    user_id    sections_id
//
4 46 1
5 46 2
6 46 4
7 46 5
//

表格“部分”:

id    header_id    name
1 1 1/3
2 1 2/3
3 1 3/3
4 2 1/3
5 2 2/3
6 2 3/3

下面的查询

SELECT a.sections_id
,b.header_id
FROM users a
JOIN sections b
ON a.sections_id = b.id
WHERE a.user_id = 46;
// a.user_id can be just user_id, but added for clarity

给我:

sections_id    header_id
1 1
2 1
4 2
5 2

我想要的是特定用户每个 header 的最大部分 ID,以便我知道我需要为用户提供哪个部分:

sections_id    header_id
2 1
5 2

我假设这是每个组的最大值问题,但我无法完全理解解决方案。我可以将所有数据放入我的 PHP 中并从那里解析出来,但似乎我应该能够通过 SQL 来完成它。 TIA!

最佳答案

这是一个简单的group by查询:

SELECT s.header_id, max(u.sections_id)
FROM users u JOIN
sections s
ON u.sections_id = s.id
WHERE u.user_id = 46
group by s.header_id;

我还把你的别名改成了表格的首字母。这使得查询更容易理解。

编辑:SQLFiddle 此处:http://sqlfiddle.com/#!2/dbb5a/2

关于MySQL:每个组的另一个最大值?两张 table ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16473801/

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