sql—如何从具有一对多关系的表中随机选择?

xe55xuns  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(346)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

9个月前关门了。
改进这个问题
我有 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排。换句话说,我的查询不能正常工作。我的错在哪里?

qij5mzcb

qij5mzcb1#

问题可能出在数据本身。如果你在某个学科中少于15个Q,那么你将得到少于45个关于这个学科id的记录。首先检查你的数据。

相关问题