php-从同一组获取数据的其他用户数据的SQL

我很难把头放在SQL上,我需要提取与其他用户的数据,这些用户与PHP应用程序中的登录用户属于同一组.

数据结构如下所示:

用户表

> user_id
>名称
>状态
>生物

组表

>组名
> user_id

我想要做的是创建一个页面,以显示用户所属的一个或多个组的所有其他成员的履历.

我试过这个SQL:

SELECT list.listname, list.user_id, list.groupname 
FROM list 
LEFT JOIN user_group ON list.user_id = user_group.user_id 
WHERE user_group.user_id = 'test@testuser.com' 
ORDER BY list.groupname

但是我只是找了test@testuser.com的个人简历,没有其他个人简历.如果删除该语句的WHERE部分,则将获得所有用户的所有个人资料,而不仅仅是与test@testuser.com在同一组中的用户的个人资料.登录的用户可能属于多个组.

关于如何获取此数据的任何想法?

最佳答案
这将返回给定用户的组:

SELECT l.groupname
FROM list l 
WHERE l.user_id = 'test@testuser.com'
ORDER BY l.groupname;

如果您要组中的所有用户

SELECT l.listname, l.user_id, l.groupname
FROM list l LEFT JOIN
     user_group ug
     ON l.user_id = ug.user_id 
WHERE l.groupname IN (SELECT l2.groupname
                      FROM list l2 
                      WHERE l2.user_id = 'test@testuser.com'
                     )
ORDER BY l.groupname;

转载注明原文:php-从同一组获取数据的其他用户数据的SQL - 代码日志