我想从2个表中随机选择N个行数。我的第一个表是这样的:SQL Server - 从2个表中选择N个随机行
q_id | question_text
-----------------
1 | What am I doing?
2 | Who are you?
3 | Hmm?
我加入到它的表看起来像这样:
a_id | q_id | answer_text
-------------------------
1 | 1 | Nothing
2 | 1 | Something
3 | 2 | Mike
4 | 2 | Steve
5 | 2 | Jon
6 | 3 | Yup
7 | 3 | Nope
我要输出与他们的回答随机的问题。所以,如果我有50行,我可以选择,例如,前3,它会输出3个随机问题,但有很多答案。
这是我一直在努力的查询,但是当我使用TOP(2),它只能抓住前2的答案,而不是顶部2个问题:
查询:
SELECT TOP(2) q.q_id, q.question_text, a.answer_text
FROM question q
INNER JOIN answers a ON q.q_id= a.q_id
目前的结果:
2 | Who are you? | Mike, Steve
预期结果:
1 | What am I doing? | Nothing, Something
3 | Who are you? | Mike, Steve, Jon
如果您试图随机选择问题,为什么使用TOP?这总会给你同样的三个问题。 –
我完全不明白你的问题。您的示例查询将输出2行,而不是1,''Nothing,Something''不在'answer_text'的示例值中。 –
我同意,你是否真的想为每个答案一行,或者你想在每个问题的一行中连接所有可能的答案串? – Devon