要創建多對多關系,我有三個表:
tblEmployee, 包含員工
tlkpPermission, 包含 11 個不同的可能的權限組,員工可以是其中的一部分
tblEmployeeXPermission, 結合EmployeeID一個或多個PermissionID
我要創建的是一個查詢,顯示員工不屬于哪些權限組。
因此,如果EmployeeID 12345關聯PermissionID 1,2,3,4,5,但不關聯6,7,8,9,10,11(在EmployeeXPermission表中),那么我希望查詢顯示EmployeeID 12345不是 PermissionID 的一部分6,7,8,9,10,11。
在所有的 JOIN 和查詢選項中,我只能得到一個查詢來顯示與哪個PermissionIDs員工相關聯,而不是與PermissionIDs該員工不相關聯。
任何幫助,將不勝感激。
謝謝
uj5u.com熱心網友回復:
您需要從員工和權限的所有組合開始,這種型別的連接是CROSS JOIN,但 MsAccess SQL 在新的 SQL 語法中沒有它。您可以使用在FROM子句中列出表的舊語法,以逗號分隔,并在子句中提供連接條件(如果有)WHERE:
SELECT
EmployeeId,
PermissionID
FROM
tblEmployee as E,
tlkpPermission as P
where not exists (
select 1
from tblEmployeeXPermission X
where X.EmployeeId=E.EmployeeId
and X.PermissionId=P.PermissionId
)
在這里,直到WHERE子句的部分將為您提供所有員工 - 權限組合,并且該WHERE子句洗掉出現在 tblEmployeeXPermission 中的那些,留下您想要的那些。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434138.html
上一篇:日期時間和轉換函式在表設計時在MSAccess365中不可用
下一篇:TensorFlow內積乘法
