我asume你指的是幾個位列,而不是一個標誌列。
我建議不要使用位,因爲您需要將它們與總和或最大值一起添加。 所以你應該使用整數爲了不必轉換/轉換。
T_Groups:
GRP_ID
GRP_Name
GRP_IsAdmin AS integer
GRP_IsModerator AS integer
GRP_IsGuest AS integer
T_Users
USR_ID
USR_DisplayName
USR_UserName
USR_PasswordHash
USR_PassWordSalt
USR_PassWordAlgorithm
T_MAP_Users_Groups
MAP_USRGRP_ID
MAP_USRGRP_USR_ID
MAP_USRGRP_GRP_ID
查詢是這樣的:
SELECT
USR_ID, USR_Name
,MAX(GRP_IsAdmin) AS IsAdmin
,MAX(GRP_IsModerator) AS IsModerator
,MAX(GRP_IsGuest) AS IsGuest
FROM T_Users
LEFT JOIN T_MAP_Users_Groups
ON MAP_USRGRP_USR_ID = USR_ID
LEFT JOIN T_Groups
ON GRP_ID = MAP_USRGRP_GRP_ID
GROUP BY USR_ID, USR_Name
我看到這將如何工作,因爲IsAdmin,IsModerator和IsGuest是組中的實際列,所以我們可以連接表以在結果集中獲取這些值。 –