0
ALTER PROCEDURE [dbo].[SpFillAnswer] 
    @q_Id nvarchar(50)
AS
BEGIN
    --SET NOCOUNT ON;

    SELECT Answer, Date_Time, Name 
    FROM Answers, RegUsers
    WHERE Answers.Q_Id = @q_Id 
      AND RegUsers.UserId = (SELECT Answers.User_Id FROM Answers WHERE Answers.Q_Id = @q_Id);
END

我有三个表RegUsersAnswersQuestions

我必须同时从表中获取AnswerDate_TimeAnswers表中获取我必须找出User Name发布答案的人,这是从RegUsers表中获取的。

为此,我尝试了以下代码,该代码针对子查询的 1 个结果正确运行。

但是当多个结果来自子查询时,它给了我一个错误:

(Select Answers.User_Id from Answers where Answers.Q_Id = @q_Id )

请帮助我,为我想要的结果建议另一个子查询。

谢谢。

4

1 回答 1

1

更改=IN

Select Answer, Date_Time, Name from 
Answers, RegUsers
where Answers.Q_Id = @q_Id 
and RegUsers.UserId IN (
   Select Answers.User_Id 
   from Answers 
   where Answers.Q_Id = @q_Id );
于 2012-12-21T04:32:01.937 回答