Ver Mensaje Individual
  #18 (permalink)  
Antiguo 30/01/2010, 08:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mostrar el nombre

Según lo que posteas:
Código MySQL:
Ver original
  1.      gente1.nombre usuaenvia,
  2.      gente2.nombre usuarecibe,
  3.      gente3.nombre usarioenviaoreja,
  4.      gente4.nombre usuariorecibeoreja
  5. FROM oreja
  6.      INNER JOIN gente gente1 ON gente1.id_gente = oreja.usua_envia_beso
  7.      INNER JOIN gente gente2 ON gente2.id_gente = oreja.usua_recibe_beso
  8.      INNER JOIN gente gente3 ON gente3.id_gente = oreja.usuario_envia_oreja
  9.      INNER JOIN gente gente4 ON gente4.id_gente = oreja.usuario_recibe_oreja
  10. ORDER BY id_oreja ASC

Cita:
Si le quito los campos gente3.oreja y gente4.oreja, me funiona, pero si intento colocarle mas campos, deja de hacerlo.
En primer lugar, deberías decirnos qué es lo que devuelve la consulta.
Si devuelve un error, debes decirnos qué error. Nadie puede responder nad si no aportas información precisa; estaríamos adivinando.
Si no devuelve un error, y si devuelve un encabezado de tabla, pero sin registros, entonces la consulta funciona, pero la misma no obtiene resultados porque no hay registros que cumplan esas condiciones.

Cita:
POr ejemplo. En la tabla tengo 6 campos "usaurio_envia_oreja", "usaurio_envia_beso", "usuario_envia_gustas", "usuario_recibe_beso","usuario_recibe_oreja"," usua rio_recibe_gustas".
Si un uusario le da a enviar beso, me inserta una linea en la BB.DD y las demas las deja en NULL.
Ahora lo que hago es listarlo por ORDEN DE ID, pero no me funciona.
Donde puede estar el fallo?
Por tu descripción, a mi entender tienes un diseño ineficiente, con alta probabilidad de dar errores o resultados erróneos.
Estás tratando con algo de liviandad el tema de los NULL, si tienes muchos campos con NULL en una determinada condición lo que tienes es un error de diseño, ya que eso significa que las relaciones entre entidades no debes estar agrupadas de la forma en que lo planteaste. Es posible que una mayor cantidad de tablas, administrando cada relación directa, fuera una mejor opción.
En cualquier caso, piensa esto: Un INNER JOIN devuelve registro sólo si hay coincidencias entre todas sus partes, si una sola no lo tiene, ese registro no se devuelve.

Yo plantearía primero una prueba de la consulta usando LEFT JOIN en lugar de INNER JOIN para ver si hay puntos de registros que no tienen coincidencias, lo que marcaría por qué no funciona la consulta original.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)