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
我有三個表,RegUsers
,Answers
和Questions
。錯誤而執行存儲過程
我必須在同一時間,我必須找出誰張貼的答案,這是從RegUsers
表中取出的User Name
從Answers
表中提取Answer
和Date_Time
。
爲此,我嘗試了以下代碼,該子查詢對於1結果正確運行。
但它給我一個錯誤,當一個以上的結果,從子查詢出來:
(Select Answers.User_Id from Answers where Answers.Q_Id = @q_Id)
請幫助我,建議我另一個子查詢我想要的結果。
Thanxx。
感謝名單院長回答。是的,現在「IN」正在工作,但我只有兩個用戶在相同的問題上回答。但在排除此查詢後,我得到4個結果而不是2.每個用戶名都重複兩次,每個答案都是。 – Swapnil
使用舊的'from 答案,RegUsers'語法的危險。您在Answers和RegUser之間沒有連接。使用JOIN ... ON語法重寫此查詢,您的重複問題將消失。 – DeanGC
現在我想.....選擇接聽,DATE_TIME,從答案姓名加入RegUsers上[email protected]_Id和RegUsers.UserId IN(從答案中選擇其中Answers.User_Id [email protected]_Id) \t;但仍然發生同樣的重複.. – Swapnil