【问题标题】:joins- how to pass the parameter in stored procedure to execute a join queryjoins - 如何在存储过程中传递参数以执行连接查询
【发布时间】:2013-05-09 02:59:58
【问题描述】:

我已经使用连接从通用名称下的两个表中获取数据,如

SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints, 
persons.SenderID
FROM userValidity
INNER JOIN persons
ON userValidity.Username=tbl_persons.Username 

但我只需要使用我在存储过程中作为参数传递的用户名来执行此查询..

如何在此连接中传递存储过程中的用户名。

alter procedure GetNameIDUserInformation
(
@user varchar(max)
)
as
begin

SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints, 
persons.SenderID
FROM userValidity
INNER JOIN persons
ON userValidity.Username=tbl_persons.Username 
end

在这个 SP 中,我必须在哪里传递用户参数才能获取我的用户记录的单行?

【问题讨论】:

    标签: sql stored-procedures join


    【解决方案1】:

    如果您只是将WHERE userValidity.Username=user 添加到查询中会发生什么? :

    alter procedure GetNameIDUserInformation ( @user varchar(max) ) as
    begin
        SELECT userValidity.UserName,
        userValidity.ValidFrom,userValidity.ValidUpTo,
        userValidity.TotalPoints, persons.SenderID
        FROM userValidity
        INNER JOIN persons
        ON userValidity.Username=tbl_persons.Username end
        WHERE userValidity.Username=user
    

    如果您在 user 周围遇到语法错误,请考虑使用其他名称,因为 user 在某些 RDBMS 中是保留关键字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      相关资源
      最近更新 更多