Tema: Inner join
Ver Mensaje Individual
  #12 (permalink)  
Antiguo 17/11/2008, 07:20
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: Inner join

Tres detalles:
1. No uses una consulta del tipo "SELECT * FROM ...", no sólo porque es muy ineficiente (es la peor de todas las formas), sino porque te traerá campos que realmente no estás usando al final. En este caso te trae no sólo los datos sino todos los ID de todas las tablas involucradas.
¿Realmente vas a usar TODO eso?

2. la consulta:
Código sql:
Ver original
  1. SELECT *
  2. FROM link
  3. INNER JOIN name ON link.name = name.id
  4. INNER JOIN director ON link.director = director.id
  5. INNER JOIN genre ON link.genre = genre.id
  6. INNER JOIN CAST ON link.CAST = CAST.id
  7. INNER JOIN DATE ON link.DATE = DATE.id
  8. INNER JOIN url ON link.url = url.id;
tiene además el problema de usar los mismos nombres para los campos que para las tablas... lo que con MySQL puede dar errores, resultados inesperados o no deseados. Ese puede ser el caso. Por esa razón te recomendaba usar los nombres de los campos como "NAME_ID", por ejemplo.
Fuera de eso, el código debería estar devolviendote correctamente los registros. No hay razón para que falle.

3. Finalmente, por favor, es una regla en este foro y en todos los foros en general, la de no poner código que no sea específico del foro. Para eso existen los foros de PHP, .NET, ASP, JAVA y demás.
Cuando escribes PHP mezclado con el SQL, el SQL se ve "sucio", y no es posible saber al final si el error está en el SQL o en el PHP y de esa forma se nos dificulta ver el problema y poder contestarte.
Entiendo que te resulte fácil copiar y pegar, pero los que somos DBA no programamos aplicaciones y no nos dedicamos a leer códigos que no sea SQL, en cualquiera de sus formas. Ten en cuenta eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)