難易度に基づいて質問セットから12個の質問を取り出す必要があります。以下は私が書いた質問です。制限値postgresqlで異なる出力を返す連合
(SELECT q.question_text, q.option_a, q.option_b, q.option_c, q.option_d,
q.correct_answer, q.image_link, q.question_type
FROM questions_bank q
JOIN sports_type st ON st.id = q.sports_type_id
JOIN difficulty_level dl ON dl.id = q.difficulty_level_id
WHERE st.game_type = LOWER('cricket') AND dl.value = 'E'
ORDER BY random()
LIMIT 7)
UNION
(SELECT q.question_text, q.option_a, q.option_b, q.option_c, q.option_d,
q.correct_answer, q.image_link, q.question_type
FROM questions_bank q
JOIN sports_type st ON st.id = q.sports_type_id
JOIN difficulty_level dl ON dl.id = q.difficulty_level_id
WHERE st.game_type = LOWER('cricket') AND dl.value = 'M'
ORDER BY random()
LIMIT 4)
UNION
(SELECT q.question_text, q.option_a, q.option_b, q.option_c, q.option_d,
q.correct_answer, q.image_link, q.question_type
FROM questions_bank q
JOIN sports_type st ON st.id = q.sports_type_id
JOIN difficulty_level dl ON dl.id = q.difficulty_level_id
WHERE st.game_type = LOWER('cricket') AND dl.value = 'H'
ORDER BY random()
LIMIT 1);
問題は時々15私は出力の12行を期待して、私はこのクエリを実行するたびに、それは私に結果の異なる数の代わりに、静的な12を与えるたびは、時々私は時々、10、12を得ることです、少なくない、それ以上ではない。
このクエリで何が問題になっていますか?
あなたのクエリがない以上、最大12行を返す必要があります。正確に12を得るには['union all'](https://www.postgresql.org/docs/9.6/static/sql-select.html#SQL-UNION) –
FYI、' UNION'は重複を削除し、 'UNION ALL 'doesn't。無関係のタグを避けるためにしてください –
クエリが12行未満を返す可能性がありますが、12以上を返すことはできない可能性があります。 –