Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/11/2013, 08:55
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: seleccion de dos tablas con inner join

Pues mira:
Código MySQL:
Ver original
  1. FROM answers, questions
  2.       INNER JOIN questions ON answers.id_questions=questions.id_question
  3.       INNER JOIN users ON answers.id_users=users.id_user
  4.       INNER JOIN typequestions ON questions.id_typequestions=typequestions.id_typequestion
  5. WHERE answers.id_friend=54321
  6. ORDER BY id_answer DESC
¿Ves que estás llamando dos veces a la tabla "questions", siempre con el mismo nombre?
Bueno, ese es el problema.

¿Cómo se soluciona?

Con ALIAS. Para eso se usan.
Aunque en realidad me parece que tu caso es más bien que pusiste una tabla de más...

Por otro lado, estás mezclando JOINs implícitos on explícitos, lo que puede dar lugar a respuestas erróneas.Si usas INNER JOIN , usa INNER JOIN en TODAS LAS TABLAS. Siempre.

Código MySQL:
Ver original
  1. FROM answers A
  2.       INNER JOIN questions Q ON A.id_questions = Q.id_question
  3.       INNER JOIN users U ON A.id_users = U.id_user
  4.       INNER JOIN typequestions TQ ON  Q.id_typequestions = TQ.id_typequestion
  5. WHERE A.id_friend=54321
  6. ORDER BY A.id_answer DESC
Consejo: acostúmbrate a usar alias. Evitan tener "codigos chorizo" ilegibles.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)