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