大家好,我正在寻找一些查询帮助。 我有2张桌子
我需要从问题中随机获得所有答案。使用查询
Select * From questions,answers WHERE questions.id = answers.iddomanda
结果是完美的,但如果我使用兰德的订单,这就是结果。
有一种方法可以随机获得问题,随机结束答案吗? 像
这样的东西id iddomanda question answer
4 4 Come va ? bene
4 4 Come va ? male
1 1 Come ti chiami ? Michele
1 1 Come ti chiami ? Carlo
2 2 Di dove sei? San Salvo
2 2 Di dove sei ? Vasto
3 3 Dove vai ? Lontano
3 3 Dove vai ? Lontanissimo
3 3 Dove vai ? In giro
3 3 Dove vai ? Di la
请求帮助
答案 0 :(得分:0)
使用子查询以随机顺序选择问题和答案:
SELECT *
FROM (SELECT *
FROM questions
ORDER BY RAND()
LIMIT 10) AS q
JOIN (SELECT *
FROM answers
ORDER BY RAND()
LIMIT 100) AS a
ON q.id = a.iddomanda
LIMIT 10
答案 1 :(得分:0)
按rand()
排序将提供随机顺序。
您想要的是第一个问题ID和第二个在相同问题ID中的随机订单:
... order by id, RAND() ...
答案 2 :(得分:0)
您需要做的就是将问题ID随机化,然后像这样加入您的答案。
SELECT t.id, t1.iddomanda, t.question, t1.answer
FROM
( SELECT id, domanda as question
FROM questions
ORDER BY RAND()
) t
LEFT JOIN
( SELECT iddomanda, risposta as answer
FROM answers
) t1 on t1.iddomanda = t.id;
关于这个查询的好处是你非常简约..问题表将比答案表小得多,所以你只需要随机化一个表和那个较小的表...然后当你加入它将加入他们已经随机化的表格!