Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/03/2014, 16:14
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: que es mejor consulta con where o un inner join?

hola de nuevo:

Hacer JOIN's con dos o tres o n tablas (sin rebasar el limite máximo de tablas que es de alrededor de 50), es exactamente lo mismo:

Código MySQL:
Ver original
  1. FROM tabla1, tabla2, tabla3, tabla4
  2. WHERE tabla1.campo = tabla2.campo and tabla2.campo = tabla3.campo and tabla3.campo = tabla4.campo and tabla3.otro_campo = tabla4.campo and tabla1.campo = 'algo' or tabla3.campo in (1, 2)

pasaría a ser algo como esto:

Código MySQL:
Ver original
  1. FROM tabla1
  2. INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
  3. INNER JOIN tabla3 ON tabla2.campo = tabla3.campo
  4. INNER JOIN tabla4 ON tabla3.campo = tabla4.campo and
  5.                       tabla3.otro_campo = tabla4.campo
  6.    tabla1.campo = 'algo' or
  7.    tabla3.campo in (1, 2)


es decir, en las cláusulas ON SÓLO VAN LAS RELACIONES QUE SIRVEN PARA UNIR UNA TABLA CON OTRA... en el WHERE van los filtros de la información. hay algunos "trucos" para hacer más eficientes los JOIN's... por ejemplo, si tu tabla1 se relaciona con tus tablas 2 y 4, pero hay menos registros relacionas con la tabla4, entonces colocas primero el JOIN con la tabla 4 y después el de la tabla2... en realidad no hay mucha ciencia, insisto, es cuestión de práctica. Si tienes problemas con alguna consulta, postea lo que intentaste hacer y con gusto te ayudamos a corregirla.

Saludos
Leo