这里是我当前的查询:需要知道,如果这是可能的SQL如果是的话,该怎么办呢
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
基本上,该数据库包含各种标题问题。例如:
questions_headings:
+----+-------+
| id | title |
+----+-------+
| 0 | blah1 |
+----+-------+
| 1 | lol1 |
+----+-------+
| 2 | etc1 |
+----+-------+
questions:
+----+---------+----------+
| id | heading | question |
+----+---------+----------+
| 0 | 1 | howdoi |
+----+---------+----------+
| 1 | 0 | blahques |
+----+---------+----------+
| 2 | 1 | herro |
+----+---------+----------+
我的查询所做的是从给定标题中随机选择X个问题并将其显示给用户。
目前,如果你想要10个随机问题(限制10),它会给你10个随机问题跨所有ID。正常,对吧?但我不想要这个。
我需要查询的是,抽出10个随机问题分布在给定的ID。那样的话,我不会以一个标题的9个问题和另一个问题的1个问题结束。
希望这是有道理的......
是否有可能只用SQL做到这一点?
等分布不是随机的。 – Naktibalda 2010-06-24 08:28:06
我知道这个问题可能只是一个例子,但在我看来,这两个表都有1对1的关系,因此将它们拆分成不同的表是不必要的。 – 2010-06-24 09:53:14
这是一对多的关系。一个标题可以有n个问题。 – 2010-06-24 10:33:14