テーブルスキーマを変更できますか?最初のテーブルであるsurvey_1は、回答ごとに1つの行を使用し、行ごとに他のテーブルのキー全体を使用して作成する方が適切です。このように(独自のインデックスを追加)
create table survey_1 (
id int,
token int,
sid int,
gid int,
qid int,
answer varchar(255)
)
データよりも
------------------------------------------
| 1 | 1 | 1 | 2 | 1 | "YES" |
| 1 | 1 | 1 | 2 | 2 | "Justin Beiber" |
| 2 | 1 | 1 | 2 | 1 | "YES" |
| 2 | 1 | 1 | 2 | 2 | "Britney Spears" |
------------------------------------------
作業がはるかに簡単になり、一般的に優れたデザインになります。
http://sqlfiddle.com/#!2/4f1ca/2の外観は次のとおりです。