我有Questions
表:
ID TEXT DISCIPLINE_ID
1 What is stack? 1
2 The biggest ocean is 1
我有一个Option
表,它包含了一些问题的所有选项:
ID TEXT IS_CORRECT QUESTION_ID
1 It is data structure TRUE 1
2 It is game FALSE 1
3 I don't know FALSE 1
4 Atlantic FALSE 2
5 Pacific TRUE 2
6 Indian FALSE 2
我应该按学科和所有选项随机选择15个问题。这是我的尝试:
SELECT Q.ID, Q.TEXT, O.ID, O.TEXT, O.IS_CORRECT
FROM (
SELECT ID, TEXT
FROM QUESTION
WHERE DISCIPLINE_ID = 1
ORDER BY RANDOM() LIMIT 15
) Q
JOIN OPTION O ON O.QUESTION_ID = Q.ID;
我随机抽取了该学科的15个问题。然后,我加入了他们的选择。但它不起作用。因为,我对每个问题有3个选项,我应该从上面的查询中得到正好45(3*15(行。但我有时排30排,有时排33排。换句话说,我的查询不能正常工作。我的错误在哪里?
问题可能出在数据本身。如果你在某些学科中的少于15个Qs,那么你将获得少于45个该学科_ID的记录。首先检查您的数据。