gpt4 book ai didi

mySQL - 抓取数据同时确保字段是唯一的

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

我有这两张表

带有字段“id、category、total”的类别
字段为“id、category_id、title”的用户

类别是用户可以选择的类别列表。
每次用户选择某个类别时,我们都会增加总计数器。 (即受欢迎程度)

如何获取按类别排序的每个类别的唯一用户数据。total 并且 user.id 需要是最新的?

这就是我所拥有的。几乎就在那里,除了这会获取第一个用户 ID。

select users.id from users left join categories on users.category_id = categories.id group by users.category_id order by categories.total desc

为了说明这一点,这里有一个例子:
类别表有以下值
id = 1,类别 = 免费,总数 = 3
id = 2,类别 = 昂贵,总计 = 1
id = 3,类别 = 可爱,总数 = 2

users 表具有以下值
id = 1,category_id = 1,标题= aello
id=2,category_id=2,标题=bello
id = 3,category_id = 3,标题= zello
id = 4,category_id = 1,标题=杰洛
id = 5,category_id = 3,标题 = 大提琴
id = 6,category_id = 1,标题= friend

我的 SQL 查询返回以下用户:1, 3, 2(与总数最多的类别关联的第一个用户)

但是,我想要的结果是:6, 5, 2(与总数最多的类别关联的最后一个用户)

谢谢,
三通

最佳答案

你的要求让我感到困惑......所以我不确定这是否真的实现你想要的......但它应该返回 (6,5,2) (没有特定的顺序)。如果排序很重要,请添加“ORDER BY Category_id”或其他内容。

SELECT MAX(id)
FROM users
GROUP BY category_id;

要解决您的评论,请尝试以下操作(未经测试,因为我没有在任何地方安装 MySQL):

SELECT *
FROM users
WHERE id = (
SELECT MAX(id)
FROM users
GROUP BY category_id
);

关于mySQL - 抓取数据同时确保字段是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6379346/

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