我在SQLSERVER 3個表:SQL加入許多一對多 - 3個表
tbl_Users - User_ID, User_Name
tbl_Roles - Role_ID, Role_Name
tbl_Users_Roles_MTM - User_ID, Role_ID
用戶可以分配給他的多重角色,這將在許多一對多表顯示。
在我的存儲過程,我需要Role_Name
這是不分配給特定User_ID
(這是作爲參數)。
我想我應該使用INNER JOIN(或左邊的一個...)。
在SO和其他論壇中有許多條目與這個問題幾乎相似,但不完全相同。我嘗試了很多,但現在我完全失去了手腳!
謝謝大家。
編輯:
隨着SO好心人的幫助下,我得到它的工作:
SELECT r.Role_Name
FROM tbl_Roles r
WHERE NOT EXISTS(
SELECT 1
FROM tbl_Users_Roles_MTM ur
WHERE ur.User_ID = @User_ID
AND ur.Role_ID = r.Role_ID);
這樣的人真棒!!!!!
如果您添加一些示例表格數據和預期結果,則會更容易理解您的問題。 – jarlh