从数据库随机生成ID,并确保它不会重复

时间:2019-02-19 17:08:55

标签: c# sql database command inner-join

我正试图从数据库中的问题表中随机生成要在测验中回答的问题,但是我不希望在测验中有两个相同的问题。

当我问这个问题时,我正在使用它们将它们放入表格中

SqlCommand cmdInsert = new SqlCommand("INSERT INTO [dbo].[Tests]( TestID, UserID, Date, QuestionsID) VALUES ('"+1+"','"+ StudentLoginForm.UserInformation.UserID + "',GETDATE(),'" + QuestionID.Questionid + "')", con);

目的是将该表的内容与问题ID进行比较以选择问题。

我正在使用以下选择语句选择要提问的问题,但有时会产生相同的问题

 SqlCommand cmd = new SqlCommand("SELECT QuestionID, Answer, Question, OptionA, OptionB, OptionC, OptionD FROM dbo.Questions LEFT JOIN Tests ON Questions.QuestionID = Tests.QuestionsID order by newid()", con);

任何帮助解决该问题的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的联接可能会产生重复,因此您必须修复数据或在查询中使用DISTINCT。

SELECT DISTINCT QuestionID, Answer, Question, OptionA, OptionB, OptionC, OptionD
FROM dbo.Questions 
LEFT JOIN Tests ON Questions.QuestionID = Tests.QuestionsID