获取admin\u id>=3的嵌套MySQL查询

获取admin\u id>=3的嵌套MySQL查询,mysql,Mysql,这个查询似乎不起作用 选择用户名、用户id、, 选择admin\u id,COUNTadmin\u id作为 来自“tb_用户” 按管理员id分组 有>=3的 来自'tb_user',其中1 我想得到一个用户名和用户名的列表,其中管理员id大于等于3 我想我应该用join来解决这个问题,但我不知道怎么做。这里有一个使用exists的选项: 使用联接,而不是将子查询放在选择列表中 select t1.user_name, t1.user_id FROM tb_user AS t1 JOIN (

这个查询似乎不起作用

选择用户名、用户id、, 选择admin\u id,COUNTadmin\u id作为 来自“tb_用户” 按管理员id分组 有>=3的 来自'tb_user',其中1 我想得到一个用户名和用户名的列表,其中管理员id大于等于3

我想我应该用join来解决这个问题,但我不知道怎么做。

这里有一个使用exists的选项:


使用联接,而不是将子查询放在选择列表中

select t1.user_name, t1.user_id
FROM tb_user AS t1
JOIN (
    SELECT admin_id
    FROM tb_user
    GROUP BY admin_id
    HAVING COUNT(*) > 3
) AS t2 ON t1.admin_id = t2.admin_id

“帮助我们”帮助您-共享表结构、一些示例数据以及您尝试获取的此示例结果您不需要关联子查询吗?@Barmar Yep谢谢。join、exists和in都是潜在的选项,尽管可能会产生与null稍有不同的结果。谢谢你指出这一点。你能解释一下查询流是如何工作的吗?@ashwinyadav-当然,这表示从tb_user返回子查询中存在管理员id的所有用户。子查询仅返回同一表中至少有3条记录的管理员。
select t1.user_name, t1.user_id
FROM tb_user AS t1
JOIN (
    SELECT admin_id
    FROM tb_user
    GROUP BY admin_id
    HAVING COUNT(*) > 3
) AS t2 ON t1.admin_id = t2.admin_id