验证用户标志作为参数
verify flag for user as parameter
我有 table 个用户
Userid flag
145 1
142 0
秒table销量
salesId date amount
252 01/01/2021 125
23 01/02/2021 300
我每次都需要检查用户参数标志是否显示数据
对于用户 145 我将显示 table 销售中的所有内容,因为 flag=1
但是用户 142 我不会显示任何内容,因为 flag =0
CREATE PROCEDURE Sales (@userID nvarchar(30))
AS
SELECT * FROM sales
cross join users
WHERE UserID= @userID and flag =1
GO;
结果不正确,如何更正
您的版本适用于 select sales.*
。但是,我会使用:
select s.*
from sales s
where exists (select 1
from users u
where u.UserId = @UserId and u.flag = 1
);
这清楚地表明 users
只是用于过滤,并且两个表之间确实没有任何关系(当然除了权限之外)。
我有 table 个用户
Userid flag
145 1
142 0
秒table销量
salesId date amount
252 01/01/2021 125
23 01/02/2021 300
我每次都需要检查用户参数标志是否显示数据 对于用户 145 我将显示 table 销售中的所有内容,因为 flag=1 但是用户 142 我不会显示任何内容,因为 flag =0
CREATE PROCEDURE Sales (@userID nvarchar(30))
AS
SELECT * FROM sales
cross join users
WHERE UserID= @userID and flag =1
GO;
结果不正确,如何更正
您的版本适用于 select sales.*
。但是,我会使用:
select s.*
from sales s
where exists (select 1
from users u
where u.UserId = @UserId and u.flag = 1
);
这清楚地表明 users
只是用于过滤,并且两个表之间确实没有任何关系(当然除了权限之外)。