0

私は2つのテーブルを持っています。

1 つは質問を保持します。

id | question
1   How old are you?
2   Are you male of female?

もう1つは試験を開催します:

id  |   title     |  question_ids
1    Summer Exam     [1,2]

私の質問は、exams テーブルから試験を選択し、その特定の試験 (question_ids フィールド) に関連するすべての問題を取得したいのですが、question_ids に格納されている ID だけでなく、問題テーブルから問題を取得したいということです。

これどうやってするの?

4

2 に答える 2

0

コマンドを使用できますFIND_IN_SET。これはインデックスを使用しないため、かなり遅くなる可能性があることに注意してください

SELECT title, question
FROM questions
INNER JOIN exams
ON FIND_IN_SET(questions.id, exams.question_ids)

を使用することもできますIN。これは、特定の検査を選択した場合にのみ機能することに注意してください。特定の試験を選択しないと、exam テーブル全体の question_ids 列で参照されているすべてのレコードが返されます

SELECT title, question
FROM questions, exams
WHERE exams.id = 1
AND questions.id IN (question_ids)
于 2013-03-07T20:49:36.787 に答える