Puoi cambiare lo schema della tabella? Perché quella prima tabella, survey_1 è meglio scritta con una riga per risposta e con l'intera chiave dell'altra tabella per riga. In questo modo (aggiungi i tuoi indici)
create table survey_1 (
id int,
token int,
sid int,
gid int,
qid int,
answer varchar(255)
)
Di quanto sarebbero i dati
------------------------------------------
| 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" |
------------------------------------------
Sarà molto più facile lavorare e in generale un design migliore.
Ecco come sarebbe http://sqlfiddle.com/#!2/4f1ca/2