我正在尝试基于将它们映射在一起的第三个表来加入/合并/来自两个表的任何数据。这是想法:
表 USERS 包含用户 ID、用户名和一些其他数据。表 GROUPS 包含组 ID、组名称和一些其他数据。
表 USERGROUPMAP 包含一组映射在一起的用户 ID 和组 ID,它们对应于 USERS 和 GROUPS 中的 ID。每个用户可以在多个组中,每个组可以有多个用户。
我总是通过在单个字段中存储对象或 CSV 数据来做到这一点,例如在名为 MEMBERS 的组中创建一个列并存储 id1、id2、id3 ......但这就是我所看到的。
我无法更改架构...我知道这与 JOIN 或 UNION 或其他东西有关,但我的 SQL 非常生疏,所以有人可以在这里帮忙吗?
我可能是半正确的想法-
SELECT USERS.uid,
GROUPS.gid,
USERGROUPMAP.uid,
USERGROUPMAP.gid
FROM USERS,
GROUPS,
USERGROUPMAP
JOIN ON ((USERS.uid = USERGROUPMAP.uid) AND (GROUPS.gid = USERGROUPMAP.gid))
有小费吗?:( .. 多谢你们。
编辑,预期的 IO
USERS 表包含一堆 UID ... 1,2,3,4,5,等等 GROUPS 表包含一堆 GID,1000,1001,1002 等等
USERGROUPMAP 包含对应于哪些用户在哪些组中的元组,例如 (1,1002) (2,1000) (5,1003) (5,1000)
我正在尝试获取用户所在的组列表,因此对于此示例,我想获得两行 5,1003 和 5,1000 ...有意义吗?