如何在单个 sql 查询中处理多对多关系?

How to handle many-to-many relationships in a single sql query?

我整个上午都在 运行 SQL 电话中,但没有任何运气能够获得我想要 return 的正确数据类型。我进行了一些搜索,发现了一些关于加入 2 table 的信息,但没有任何来自 table 的信息,也没有来自 table 的信息。这在措辞上听起来可能令人困惑,因此我精心制作了一张图表,展示了我希望获得的信息类型。

我尝试过

select * from Users 
left join UserLibs on UserLibs.userId = Users.UserId
WHERE Users.username='testname'

然而,这并没有给我图书馆的名字。

所以我厌倦了加入另一个 table 和专栏。

select * from users
left join UserLibs on userLibs.userId = Users.UserId AND left join Libraries on  UserLibs.libraryId = Libraries.libraryName
where Users.username='test';

这也没有产生结果,只是错误。任何帮助都会很棒。

更新

我只是想添加适合我的情况的最终解决方案。

SELECT Users.userId, Users.username, Users.editLibraries, Users.editAnnouncements, Users.editServices, 
   Users.editNormalHours, Users.editSpecialHours, Users.editUsers, Users.editSemesters, 
   Libraries.libraryName, LibraryDepartment.departmentName
    FROM Users
    LEFT JOIN UserLibs on Users.userId = UserLibs.userId
    LEFT JOIN Libraries on UserLibs.libraryId = Libraries.id
    LEFT JOIN UserDepts on Users.userId = UserDepts.userId
    LEFT JOIN LibraryDepartment on UserDepts.departmentId = LibraryDepartment.ldId
    WHERE Users.username='testname';

您不使用 AND 执行多重联接。你只是继续加入表格。你想加入多少就加入多少。例如:

select *
from users
left join userlibs
on users.userid=userlibs.userid
left join libraries
on userlibs.libraryid=libraries.libraryid
where username='test';