簡體   English   中英

如何在單個sql查詢中處理多對多關系?

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

我整個上午都在運行SQL調用,但是沒有運氣來獲取要返回的正確類型的數據。 我進行了一些搜索,發現了有關Joining 2 table的一些信息,但是沒有任何信息可以從表中獲取,也可以從表中獲取。 用措辭聽起來有些混亂,所以我制作了一張我想獲取的信息的圖表。

在此處輸入圖片說明

我已經嘗試過諸如

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

但是,這並沒有給我庫名。

因此,我厭倦了將該列與另一個表和列一起加入。

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

這也沒有產生結果,只是錯誤。 任何幫助都會很棒。

UPDATE

我只想添加適合我的情況的最終解決方案。

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';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM