Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/08/2016, 16:22
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: ¿por que ordenamiento de consulta cambia segun los campos que jale?

Cita:
Iniciado por ptilotta Ver Mensaje
Hola,

Yo soy de los que piensan que los JOINS fueron creados en vano.

He desarrollado millones de lineas de código, utilizando MySQL como origen de datos, con Sentencias SQL que involucran n tablas, y jamás usé un JOIN.

He sorteado los resultados a mi gusto sin problemas.
Los joins fueron creados para dar mejor performance en las consultas, es mejor utilizar joins implicitos que joins explicitos, no solo los hicieron por hacerlos, ademas se ve que estas viendo el uso de joins desde el punto de vista de desarrollador, no de DBA o especialista en bases de datos.

ahora porque te ordena dependiendo las columnas que obtienes en el select? Esto es porque los datos que te regresa la base de datos no tiene un orden especifico, a menos que tu lo indiques, asi es como trabajan los manejadores de bases de datos, te regresan la informacion que solicitas en un orden aleatorio, a menos que uses un order by o que alguna de las columnas sea parte de un indice.

Ahora porque no utilizas los joins en tu consulta, porque un join explicito y luego uno implicito?



Código MySQL:
Ver original
  1. SELECT tabla1.campo1,tabla2.campo2,tabla3.campo3, total.c
  2. FROM tabla2
  3. inner join tabla1  on tabla2.id=tabla1.id
  4. LEFT joint tabla3 ON tabla1.id=tabla3.id
  5. left join (SELECT COUNT(*) AS c, tabla4.id
  6. FROM tabla4 group by id) as total on total.id=tabla2.id
  7. ORDER BY total.c
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 03/08/2016 a las 16:29