当前位置: 首页 > 知识库问答 >
问题:

SQL:查询获取特定组的所有用户以及所有组的每个用户

巩阳秋
2023-03-14

我有3个表:users,groups,group_users

我需要获得一个特定组中的用户列表,所有用户都需要包含作为成员的所有组。

我试过这样的东西:

select group_concat(g.name) as groups
     , u.* 
  from USERS u 
  JOIN GROUP_USERS gu 
    ON gu.USER_ID = u.ID 
  JOIN GROUPS g 
    ON g.ID = ug.GROUP_ID 
 WHERE ug.GROUP_ID = SOMEID 
 GROUP 
    BY u.ID

但这将返回组中id为SOMEID所有用户,且仅连接用于搜索的一个组,即使一个用户是多个组的成员。

多谢了。

共有1个答案

张瀚漠
2023-03-14

我明白了。您需要一个组中的用户子集的所有组。这将是:

SELECT u.*, group_concat(g.name) as groups
FROM USERS u JOIN
     GROUP_USERS gu
     ON gu.USER_ID = u.ID JOIN
     GROUPS g
     ON g.ID = gu.GROUP_ID
GROUP BY u.ID
HAVING SUM(g.id = ?) > 0;

换句话说,您需要将筛选移到having子句。

 类似资料:
  • 我需要在Active Directory中找到特定组中的所有用户。我可以查询AD的特定组,我想得到用户,但我无法查询用户的特定组。 以下工作: 上面的查询返回所有类似“test”的广告组。但我该如何从广告群中获取用户列表呢?我特别想列出像“test”这样的所有组中的用户。

  • 问题内容: 我需要选择数据库中上个月创建的所有行。 例如,如果当前月份是一月,那么我想返回在十二月创建的所有行,如果月份是二月,那么我想返回在一月份创建的所有行。我的数据库中有一列,其中列出了以此格式创建的日期:。 问题答案:

  • 所以我有一个任务,所有我需要做的是编写查询,以选择所有的产品名称和他们属于哪一类。 我使用w3school-https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all中的表 我想知道为什么这个问题- 不为我工作,它给我只有8个产品与8个不同的类别名称,我需要所有的产品名称从每一个类别。 谢谢.

  • 但是响应只返回用户和他们的一些属性,而不是我在门户中看到的所有属性。 进行REST调用以获取所有用户及其字段/属性的正确URI是什么?

  • 问题内容: 我有一个简单的MySQL表,其中包含类别列表,级别由parent_id确定: 我正在尝试进行面包屑跟踪。因此,我有孩子的“身份证”,我想让所有可用的父母(重复链,直到我们达到0“家”)。可能有任意数量或子行达到无限深度。 目前,我正在为每个父母使用SQL调用,这很麻烦。SQL中有一种方法可以对一个查询执行全部操作吗? 问题答案: 从这里改编: 该行是当前页面的页码。结果如下:

  • 我搜索了以下内容:,但没有找到任何内容。 JDA版本: