gpt4 book ai didi

mysql - 使用连接从一个表中获取记录量

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:19 25 4
gpt4 key购买 nike

情况是这样的:

  • 我有 3 个表,usergroupuser_group(关系表)
  • user 中我们有:id
  • group 中,我们有:id,people(组中可以容纳的最大人数)
  • user_group:group_id, user_id

我想在同一查询中完成的是获取所有尚未满的。这意味着与组关联的用户组(总计)少于中的人(group.people)。 p>

例如:id=5 的组 people=6 并且有 6 个 group_id=5 的 user_group。所以我想得到的查询不会得到 group.id=5

这是我目前所得到的:

SELECT `group`.*
FROM `group`
JOIN `user_group` ON `user_group`.`group_id` = `group`.`id`
WHERE `group`.`people` > ¿COUNT(total_user_gruop)?

我想做一个子查询来获取每个组的 user_groups 总数,但我不知道如何实现它,或者它是否可能......

谢谢大家!

最佳答案

您需要一个 GROUP BYHAVING 子句。

HAVING 在 GROUP BY 之后执行并计数,因此您有需要与组内人员进行比较的计数。

我在这里使用不同的只是因为我不知道你是否允许在用户组表中重复;并且我假设这样的重复项(如果存在的话)不应在总数中计算多次。

SELECT G.Group_ID, count(Distinct UG.User_ID)
FROM user_group UG
INNER JOIN `group` G
on UG.Group_ID = G.ID
GROUP BY G.Group_ID
HAVING count(Distinct UG.User_ID) < G.People

关于mysql - 使用连接从一个表中获取记录量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36500918/

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