Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] recomendación sobre on en INNER JOIN

Estas en el tema de recomendación sobre on en INNER JOIN en el foro de Mysql en Foros del Web. ¿Es recomendable utilizar ON en los INNER JOIN? Leyendo la documentación de mysql vi que dice que las condiciones en el ON deberían hacerse en ...
  #1 (permalink)  
Antiguo 25/11/2013, 09:18
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
recomendación sobre on en INNER JOIN

¿Es recomendable utilizar ON en los INNER JOIN?

Leyendo la documentación de mysql vi que dice que las condiciones en el ON deberían hacerse en la cláusula WHERE, quedando el ON vacío.

Entonces ¿Por qué habilitan el ON si no aconsejan su uso?

¿ON sí u ON no?
__________________
Ayúdame a hacerlo por mi mismo.
  #2 (permalink)  
Antiguo 25/11/2013, 09:49
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: recomendación sobre on en INNER JOIN

Cita:
Leyendo la documentación de mysql vi que dice que las condiciones en el ON deberían hacerse en la cláusula WHERE, quedando el ON vacío.
El WHERE no es optimizable por el parser. Como se ejecuta luego de realizar el JOIN, entonces lee todos los registros antes de aplicar la condición. En cambio poner la condición con el ON permite aplicar los índices de la FK u otros existentes, y no se leen todos los registros.
Cita:
Entonces ¿Por qué habilitan el ON si no aconsejan su uso?
Por la misma razón que un CHECK no genera errores de sintaxis de un ALTER TABLE: Compatibilidad entre motores de tablas y con el ANSI SQL. Pero eso no implica que sea la mejor manera.
Por experiencia: Usa INNER JOIN con ON y no pongas las condiciones del JOIN en el WHERE. Jamás.

Y no le des bolilla a las cosas escritas en los manuales hace ocho años. Muchas de ellas están basadas en datos referidos a versiones todavía más antiguas del MySQL (u otros DBMS).
Son lo que se llamaría "herencias obsoletas".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/11/2013, 10:26
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: recomendación sobre on en INNER JOIN

Excelente. Gracias!!!
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: join, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:44.