Tengo las siguientes tablas: «datos», «data_link`, `usuario`, `encuesta` y `poll_answer». Las tablas `user`, `encuesta» y poll_answer `cada uno tiene un` id `campo que se obtiene de la tabla" datos ". El `` data_link tabla sólo vincula dos `id` s juntos, por ejemplo, una encuesta `y` su `poll_answer (s).
lo que los datos se vería algo así como sigue:
usuario (3) [3 es el `id`].
encuesta (12)
poll_answer (13)
poll_answer (14)
en el `data_link` tabla `id` s 13 y 14 ambos estarán vinculados a 12, para aquellos que son los dos posibles »poll_answer` s `a` encuesta de la pregunta 12.
Cuando un usuario `` respuestas / votos en una encuesta de `` pregunta, puedo enlazar el usuario `(3) a la poll_answer` (14) a través de la data_link `tabla.
Mi consulta para obtener «sondeo» s que un usuario `no ha votado no funciona correctamente, sin embargo, esto es lo que tengo hasta ahora:
SELECT DISTINCT(`poll`.`id`)
FROM `poll`
JOIN `data` ON `poll`.`id` = `data`.`id`
JOIN `data_link` ON `poll`.`id` = `data_link`.`link`
JOIN `poll_answer` ON `data_link`.`id` = `poll_answer`.`id`
LEFT JOIN `data_link` AS `data_link_2` ON `poll_answer`.`id` = `data_link_2`.`link`
LEFT JOIN `user` ON `data_link_2`.`id` = `user`.`id`
WHERE `data`.`status` != 'D'
AND (`user`.`id` != 3 OR `user`.`id` IS NULL);
- SELECT DISTINCT(`poll`.`id`)
- FROM `poll`
-
- JOIN `data` ON `poll`.`id` = `data`.`id`
- JOIN `data_link` ON `poll`.`id` = `data_link`.`link`
- JOIN `poll_answer` ON `data_link`.`id` = `poll_answer`.`id`
- LEFT JOIN `data_link` AS `data_link_2` ON `poll_answer`.`id` = `data_link_2`.`link`
- LEFT JOIN `user` ON `data_link_2`.`id` = `user`.`id`
-
- WHERE `data`.`status` != 'D'
- AND (`user`.`id` != 3 OR `user`.`id` IS NULL);
Ahora bien, esta un poco las obras, pero sigue devolviendo todas las encuestas `s Identificación del lugar de sólo los que el usuario` no ha votado. La razón de esto es simple, pero no puedo encontrar una solución: La consulta se une a la poll_answer `s con la encuesta` y el usuario `a la poll_answer`, y luego simplemente llegar a donde el usuario `s `id` no está relacionada con una respuesta. El problema es que cada colegio `tiene más de un posible« poll_answer `por lo que sigue devolviendo las respuestas que el usuario no está relacionado con por lo devuelve la encuesta` s id. No se puede vincular el usuario `a todos los poll_answer` s como entonces wouldnt saber lo que el usuario `votado.
Yo tampoco se puede vincular el usuario `a la encuesta de` cuando él / ella los votos y luego simplemente comprobar que, o yo podría alterar la consulta para obtener los resultados correctos. No sé cómo modificar la consulta para obtener lo que necesito para identificación tiene gusto de aprender a hacer eso, tal vez uno de ustedes me podría ayudar en esta lista?
Let's leave all our *plum* where it is and go live in the jungle ...