Voici ma requête en cours:besoin de savoir si cela est possible avec SQL et si oui, comment le faire
SELECT questions.question, questions_headings.title FROM questions JOIN questions_headings ON questions.heading=questions_headings.id WHERE questions.heading IN (1,2,3) ORDER BY RANDOM() LIMIT 10
Fondamentalement, la base de données contient des questions pour différentes rubriques. Par exemple:
questions_headings:
+----+-------+
| id | title |
+----+-------+
| 0 | blah1 |
+----+-------+
| 1 | lol1 |
+----+-------+
| 2 | etc1 |
+----+-------+
questions:
+----+---------+----------+
| id | heading | question |
+----+---------+----------+
| 0 | 1 | howdoi |
+----+---------+----------+
| 1 | 0 | blahques |
+----+---------+----------+
| 2 | 1 | herro |
+----+---------+----------+
Ce que ma requête est fait au hasard sélectionne une quantité X de questions des rubriques données et leur montre à l'utilisateur.
Actuellement, si vous voulez 10 questions aléatoires (LIMIT 10), il vous donne 10 questions aléatoires à travers tous les ID. Normal, n'est-ce pas? Mais je ne veux pas ça.
Ce que j'ai besoin de faire, c'est de sortir 10 questions aléatoires réparties sur les IDs donnés. De cette façon, je ne finirai pas avec 9 questions d'un titre et une question de l'autre.
espoir qui fait sens ...
Est-il possible de le faire avec juste SQL?
La distribution égale n'est pas aléatoire. – Naktibalda
Je sais que cette question a peut-être été fournie simplement comme un exemple, mais il me semble que les deux tables ont une relation de 1 à 1, donc les séparer en tables séparées n'est pas nécessaire. –
C'est une relation un-à-plusieurs. Une rubrique peut avoir n questions. –