データベースに保存されているセクションのリストをSections列 ( sectionId, sectionTypeId, sectionName) のテーブルに、特権のリストを列 ( ) のテーブルUserPrivilagesに持っていますuserPrivilagesId, userId, sectionTypeId。
テーブルからすべてのセクションを選択したいのですが、 by に保存されてSectionsいるものをマークします。sectionTypessectionTypeIdUserPrivilagesuserId
何かのようなもの:
SELECT sectionId, sectionTypeId, sectionName, (true/false) as privilage
FROM Sections
これをテーブルに結合UserPrivilagesすると、両方のテーブルにのみ存在する結果が得られますが、ユーザーがt have権限を付与するセクションも必要です。
この true/false は、 from テーブルがテーブルに存在するUserPrivilages場合はsectionTypeIdfromテーブルであり、それ以外の場合は false を返します。SectionsUserPrivilagesuserId
したがって、結果はたとえば
SectionId sectionTypeId sectionName privilage
1 1 Name1 true or 1
2 2 Name2 false or 0