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
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有结构数据的话,给些结构数据吧.
DECLARE @i INT SET @i = 1 --可以修改为2SELECT * 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
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
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有结构数据的话,给些结构数据吧.
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查出
项目编号
SET @i = 1 --可以修改为2SELECT *
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