MySql ayudarle a consultar

  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Enero 13th, 2011, 1:31 am

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:

MYSQL Código: [ Select ]
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);
  1. SELECT DISTINCT(`poll`.`id`)
  2. FROM `poll`
  3.  
  4. JOIN `data` ON `poll`.`id` = `data`.`id`
  5. JOIN `data_link` ON `poll`.`id` = `data_link`.`link`
  6. JOIN `poll_answer` ON `data_link`.`id` = `poll_answer`.`id`
  7. LEFT JOIN `data_link` AS `data_link_2` ON `poll_answer`.`id` = `data_link_2`.`link`
  8. LEFT JOIN `user` ON `data_link_2`.`id` = `user`.`id`
  9.  
  10. WHERE `data`.`status` != 'D'
  11. 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 ...
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Enero 13th, 2011, 1:31 am

  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8922
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Nota Enero 13th, 2011, 11:34 am

He leído a través de este un par de veces, muy confuso. ¿Sería posible publicar los resultados de esta consulta, y luego enviar los resultados que desea ver si la consulta fue correcta? Eso podría ayudar a ilustrar exactamente lo que usted está buscando.
Ozzu Hosting - Want your website on a fast server like Ozzu?

Publicar Información

  • Total de mensajes en este tema: 2 mensajes
  • Usuarios navegando por este Foro: Kurthead+1 y 167 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC