gpt4 book ai didi

mysql - M :N relation an query

转载 作者:行者123 更新时间:2023-11-29 00:27:37 25 4
gpt4 key购买 nike

我对特定的 mysql 查询和特定的构造有一些问题。
有 2 个表:

table users (id, username)
table groups (id, groupname)

这 2 个表是 m:n 关系,但是有 2 个表。

首先将用户映射到组

table usertogroups (idmaster, idslave)  

其中idmaster与users.id相关,idslave与groups.id相关

第二个将组映射到用户

table groupstouser (idmaster, idslave)  

其中 idmaster 与 groups.id 相关,idslave 与 users.id 相关

取决于应用程序,它无法更改。

现在我想通过表、groupstouser 和 usertogroups 的关系在一个查询中获取所有具有依赖用户的组。
我已经尝试了很多语句,但如果我将第二张表放入其中,它就不起作用了。

有什么有用的想法吗?

最佳答案

将其用作内联 View 以从两个关联表中获取数据:

((SELECT idmaster AS userid, idslave AS groupid FROM userstogroup)
UNION
(SELECT idslave AS userid, idmaster AS groupid FROM groupstouser)) all_associations

然后你可以这样查询:

SELECT groups.groupname, users.username
FROM groups
INNER JOIN ((SELECT idmaster AS userid, idslave AS groupid FROM userstogroup)
UNION
(SELECT idslave AS userid, idmaster AS groupid FROM groupstouser)) all_associations
ON groups.id = all_associations.groupid
INNER JOIN users
ON users.id = all_associations.userid

这是一个 SQL Fiddle .

关于mysql - M :N relation an query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225196/

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