当前用户编号user_id=1,首先要从accounts_userroles中查询根据user_id查询出角色类型role_type,如果role_type=1则从项目表project中查询所有项目编号,如果为2则从project2中根据user_id查询出项目编号,有没有方法不通过存储过程一次性将数据查出来的?
------解决方案--------------------
- SQL code
declare @role_type intselect @role_type=role_type from accounts_userroles where user_id=1if @role_type=1begin select * from projectendelsebegin select * from project2 where userid=1end
------解决方案--------------------
- SQL code
DECLARE @i INTSET @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_typeWHERE A.user_id = @i