一般的权限设置系统.
三个表.
user表结构
userid
...
remak
action 菜单表
actionid
...
他们两个的关系表
role
userid
actionid
现在我想根据user表中remak为某一值,求这些user共同在role拥有的actionid.
也想了,可是不知道怎么处理共同这一下子,因为其中有一个用户或几个用户特有的actionid是不需要查出来的。
SELECT [action].[actionid], COUNT(*) AS c
FROM [action]
INNER JOIN [role] ON [action].[actionid] = [role].[actionid]
INNER JOIN [user] ON [user].[userid] = [role].[userid]
WHERE ([user].[remark] = 'a')
GROUP BY [action].[actionid]
HAVING (COUNT(*) > 1)
这个就可以,我试过了,你拿你的数据测试一下,有问题下面留~~~(where后面那个remark就是你要指定的remark值,这个语句可以找出所有具有你指定的remark的用户中被超过1人使用的actionid,如果需要找出所有人都有的actionid,只需要把having后面修改一下就可以了,如果不能在程序中算出这个值,就需要两个count,比较麻烦)
PS:你的三个表名全是系统关键字或预留关键字,考虑改下哈
楼上的,不要用我头像>_<