Вы сделали бы это так же, как вы уже описали. Это потребует еще нескольких соединений. Допустим, у вас есть такая структура (я намеренно снял ограничения, чтобы сделать ее общей и уменьшить объем кода):
CREATE TABLE ForumPost (
PostID int,
ForumID int,
PostText varchar(255)
);
CREATE TABLE ForumUser (
ForumUserID int,
ForumUserName varchar(255),
NumofPosts int
);
CREATE TABLE ForumGroups (
ForumGroupID int,
ForumGroupName varchar(255)
)
CREATE TABLE ForumGroupMembership (
ForumUserID int,
ForumGroupID int
)
CREATE TABLE ForumPermissions (
ForumID int,
ForumGroupID int,
MinPosts int
)
Тогда вы можете сделать несколько объединений, чтобы убедиться, что вы ограничиваете содержимое соответствующим образом:
SELECT FPost.PostID, FPost.ForumID, FPost.PostText
FROM ForumPost FPost
JOIN ForumPermissions FPerm
ON FPost.ForumID = FPerm.ForumID
JOIN ForumGroupMembership FGM
ON FPerm.ForumGroupID = FGM.ForumGroupID
JOIN ForumUser FUser
ON FUser.ForumUserID = FGM.ForumUserID
WHERE FUser.NumOfPosts >= FPerm.MinPosts
AND FPost.PostID = <Some Number>