私は 2 つのテーブルを持っています。その構造は以下のとおりです
最初の表では、RoleID に基づいてメニュー権限を割り当てています。場合によっては、特定のユーザー (UserID)に対するいくつかの追加権限を上書きしたいことがあります。したがって、この 2 番目のテーブルは、特定のユーザーの追加権限に使用されています。この下の例では; RoleID=2 および MenuID=4 には追加権限がありません。したがって、2 番目のテーブルに 1 行追加しました。レコードをフェッチするときに、最初のテーブルの 3 行目ではなく、2 番目のテーブルからそのレコードを取得する必要があります。この目的のためにクエリを作成するにはどうすればよいですか?
私があなたの質問を明確に理解していれば、これがあなたに必要なものです。
select r.application,r.roleid,r.menuid
case when u.roleid is null and u.menuid is null
then r.isadd else u.isadd end
,case when u.roleid is null and u.menuid is null
then r.isedit else u.isedit end
-- same case conditions for other columns.
from role_menu_rights r
left join
user_role_menu_rights u
on r.roleid=u.roleid
and r.menuid=u.menuid
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加