gpt4 book ai didi

php - Mysql select table 依赖另外两张表

转载 作者:行者123 更新时间:2023-11-29 05:20:13 24 4
gpt4 key购买 nike

我有三个表 groupuserbelongs 其中 belongsgroup< 之间的关系user

Table group
group_id (pk)
group_name

Table user
user_id (pk)
user_name

Table belongs
user_id
group_id

我想显示指定组中的人也属于的随机组。
例如指定组是group_id = 1,当然我可以通过使用

"SELECT user_id FROM user u JOIN belongs b ON u.user_id = b.user_id and b.group_id = '1'" 

我一直在尝试,现在我不知道如何选择这些人所在的组。

 "SELECT g.* FROM group g WHERE ..." 

提前致谢。

最佳答案

您可以使用额外的 join 获取所有组:

SELECT DISTINCT b2.group_id
FROM user u JOIN
belongs b
ON u.user_id = b.user_id and b.group_id = '1' JOIN
belongs b2
ON b2.user_id = b.user_id;

随机选择此类组的一种方法是使用 order by rand() limit 1 .您可能想添加 where b2.group_id <> '1' .

假设你想统计group_id = 1的成员在这些组中,您只需使用 group by :

SELECT b2.group_id, count(distinct b2.user_id) as numusers
FROM user u JOIN
belongs b
ON u.user_id = b.user_id and b.group_id = '1' JOIN
belongs b2
ON b2.user_id = b.user_id
GROUP BY b2.group_id;

加入 user是多余的,但我假设它可能用于原始问题中没有的其他一些条件。

关于php - Mysql select table 依赖另外两张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811760/

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