根据角色类型查询不同的表,有时间的帮忙看下~3Q

IT求解释 2012-08-30 03:05:47
当前用户编号user_id=1,首先要从accounts_userroles中查询根据user_id查询出角色类型role_type,如果role_type=1则从项目表project中查询所有项目编号,如果为2则从project2中根据user_id查询出项目编号,有没有方法不通过存储过程一次性将数据查出来的?
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT求解释 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
SQL code

DECLARE @i INT
SET @i = 1 --可以修改为2

SELECT *
FROM ( SELECT * ,
1 AS role_type
FROM project
UNION ALL
SELECT projec……
[/Quote]

十分感谢您花费宝贵的时间帮我解惑,再次感谢
Mr_Nice 2012-08-30
  • 打赏
  • 举报
回复
DECLARE @i INT
SET @i = 1 --可以修改为2

SELECT *
FROM ( SELECT * ,
1 AS role_type
FROM project
UNION ALL
SELECT project2.* ,
2 AS role_type
FROM project2
INNER JOIN accounts_userroles C ON C.USER_ID = project2.USER_id
) B
INNER JOIN accounts_userroles A ON A.role_type = B.role_type
WHERE A.user_id = @i
IT求解释 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
SQL code

select * from (
select *,1 as role_type from project
union all
select *,2 as role_type from project2)B
inner join accounts_userroles A on A.role_type =B.role_type
where A.user_id = 1
……
[/Quote]

accounts_userroles表
user_id____role_id____project_id
___1____________1________0


accounts_roles表
role_id____description____role_type
__1________超级管理员________1


pdms_project表

对,我的就是您那种编写方式
首先accounts_userroles和account_roles表连接,根据user_id找出对应的
角色编号role_type,再根据role_type查数据,如果为1则从pdms_project表中
查询出所有项目编号,如果为2则从accounts_userroles表中根据user_id查出
项目编号
Mr_Nice 2012-08-30
  • 打赏
  • 举报
回复
select * from (
select *,1 as role_type from project
union all
select *,2 as role_type from project2)B
inner join accounts_userroles A on A.role_type =B.role_type
where A.user_id = 1


这样的?
LZ有结构数据的话,给些结构数据吧.
shshjun 2012-08-30
  • 打赏
  • 举报
回复
建议针对role_type分别建立project视图,然后将视图union起来就可以了.注意列名要一致啊.

这些视图应该可以应用到你的其它需求中.
IT求解释 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SQL code


declare @role_type int
select @role_type=role_type from accounts_userroles where user_id=1
if @role_type=1
begin
select * from project
end
else
begin
select * from project2 whe……
[/Quote]
不好意思,我希望能在在后台直接调用~像您这么写的话我不会调用
  • 打赏
  • 举报
回复

declare @role_type int
select @role_type=role_type from accounts_userroles where user_id=1
if @role_type=1
begin
select * from project
end
else
begin
select * from project2 where userid=1
end

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧