具有来自不同表的两个选择的SQL子查询给出随机选择

时间:2016-06-21 11:06:57

标签: sql sql-server

具有来自不同表的两个选择的SQL子查询提供随机选择

select top(1) Questions.Ques_ID, Question 
from Questions 
where   Questions.Ques_ID in(
                   select   top(4)  Answers.Que_ID,Answer 
                   from Answers 
                   where  Questions.Ques_ID = Answers.Que_ID   
                   order by newid())

enter image description here

2 个答案:

答案 0 :(得分:3)

使用IN()时,两侧应出现相同数量(和类型)的元素!

select top(1) Questions.Ques_ID, Question 
from Questions 
where   Questions.Ques_ID in(
                             select   top(4)  Answers.Que_ID 
                               from Answers 
                               where  Questions.Ques_ID = Answers.Que_ID   
                               order by newid())

答案 1 :(得分:0)

对我来说,似乎你想得到一个随机问题匹配答案?

SELECT TOP 1 ques.Ques_ID, 
             ques.Question, 
             ans.Answer
    FROM Questions ques
    INNER JOIN Answers ans ON ans.ExamCode = ques.ExamCode AND ans.Que_Id = ques.Ques_ID
    ORDER BY NEWID()

这是你想要的吗?