gpt4 book ai didi

Mysql 其中匹配全部

转载 作者:行者123 更新时间:2023-11-30 22:58:32 25 4
gpt4 key购买 nike

我通过连接表在用户和组之间建立典型的 m:m 关系。每个用户都可以属于多个组。

users
-------
id
name

groups
-------
id
name

user_groups
------------
id
user_id
group_id

我想尝试找到多个组中的所有用户。例如,组 3、4、5 中的所有用户。请注意,用户必须属于所有这些组。

起初我尝试了以下方法,但这当然是不正确的,因为它返回的是 OR 结果而不是 AND

SELECT DISTINCT u.*
FROM users u
LEFT JOIN user_groups ug on u.id = ug.user_id
where ug.group_id in (3, 4, 5)

我还尝试为我正在搜索的每个 group_id 单独加入(这有效),但效率不高。

如何最好地实现这一目标

最佳答案

如果您想获取有关用户的所有信息,请试试这个:

select *
from users u
join (
select user_id
from user_groups
where group_id in (3, 4, 5)
group by user_id
having count(*) > 1
) ugr on u.id = ugr.user_id

如果你想要这样的输出:user_id, user_name, count(*) 然后:

select u.id as user_id, u.user_name, count(*)
from user_groups ugr
, users u
where u.id = ugr.user_id
and ugr.group_id in (3, 4, 5)
group by u.id, u.username
having count(*) > 1

根据需要调整where group_id in (3, 4, 5)

关于Mysql 其中匹配全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25122705/

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