读书人

SQL学习,该如何解决

发布时间: 2012-12-24 10:43:13 作者: rapoo

SQL学习


--这个没问题
declare @UID int
set @UID=3
select * from T_Role_Module where RoleID
in (select RoleID from T_User_Role where UserID=@UID)



--这个有错,求教育
declare @RIDs table(RoleID int),@UID int
set @UID=3

insert into @RIDs
select RoleID from T_User_Role where UserID=@UID

select * from T_Role_Module where RoleID
in @RIDs

[最优解释]
declare @RIDs table(RoleID int),@UID int    set @UID=3     insert into @RIDs    select RoleID from T_User_Role where UserID=@UID     select * from T_Role_Module where RoleID     in (select * from @RIDs)

[其他解释]
 
DECLARE @RIDs TABLE ( RoleID INT )
DECLARE @UID INT
SET @UID = 3
INSERT INTO @RIDs
SELECT RoleID
FROM T_User_Role
WHERE UserID = @UID
SELECT A.*
FROM T_Role_Module a
INNER JOIN @RIDs b ON A.roleid = b.roleid

[其他解释]
declare @RIDs table(RoleID int)
declare @UID int
set @UID=3

insert into @RIDs
select RoleID from T_User_Role where UserID=@UID

select * from T_Role_Module where RoleID in (select RoleID from @RIDs)

[其他解释]
declare @RIDs table(RoleID int),@UID int
set @UID=3
insert into @RIDs
select RoleID from T_User_Role where UserID=@UID
select * from T_Role_Module where RoleID in (select roleid from @RIDs)

读书人网 >SQL Server

热点推荐