我有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行。换句话说,我的查询无法正常工作。我的错误在哪里?
答案 0 :(得分:1)
问题可能出在数据本身上。如果您在某些学科上少于15个问题,则此DISCIPLINE_ID的记录少于45个。首先检查您的数据。