中隨機我有一個表,它看起來像:選擇兩種不同的每個類別與MySQL
table: Q
---------------------------
|question| scope | type |
---------------------------
| this | A | 1 |
| that | A | 1 |
| them | A | 1 |
---------------------------
| this | A | 2 |
| that | A | 2 |
| them | A | 2 |
---------------------------
| this | B | 1 |
| that | B | 1 |
| them | B | 1 |
---------------------------
我需要賦予了範圍,我需要從每一類中提取兩個條目。如果範圍A,一個可能的解決方案可能是:
---------------------------
| this | A | 1 |
| them | A | 1 |
---------------------------
| that | A | 2 |
| this | A | 2 |
---------------------------
我目前使用下面的SQL語句
:
SELECT tmp.question, tmp.type, tmp.scope
FROM Q
LEFT JOIN (
SELECT * FROM Q ORDER BY RAND()
)tmp ON (Q.type = tmp.type AND tmp.scope = 'A')
GROUP BY tmp.type
ORDER BY Q.type
然而,這只是返回每個類型出於某種原因,一個NULL行一個條目。
因此,我的問題是如何優化語句來返回兩行並消除NULL?
我會問你編輯你的問題。我認爲你要求*兩個*,*不同*,*隨機選擇*,來自每個不同'類型'的條目。正確? –
是啊那是正確的! –