Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/06/2012, 09:00
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: 17 años, 2 meses
Puntos: 2658
Respuesta: Ordenar dos tablas por campos de fecha

Bueno, el problema del ordenamiento puede deberse al desconocimiento de cómo funciona el ORDER BY, lo cual debe ser parte del problema de no dominar las reglas básicas de SQL.
El mejor consejo que te puedo dar es que estudies por lo menos los conceptos básicos de las sentencias de SQL y sus modificadores (JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, UNION, GROUP BY, ORDER BY, HAVING, etc.). Te vas a evtar problemas con estas cosas.
Es imperativo que las entiendas por lo menos en lo esencial para evitarte dolores de cabeza.
Por otro lado, ten en cuenta que decir que reemplazas un UNION por un JOIN, es lo mismo que reemplazar una suma por una multiplicación. Porque eso es lo que sucede. Y no son operaciones iguales, ni dan el mismo resultado.
El UNION es sumar una cantidad X1 de registros de un SELECT, con una cantidad X2 de otro SELECT.
La condiciones básicas del UNION son:
- Ambos SELECT deben devolver la misma cantidad de columnas.
- El orden de los datos debe ser el mismo, incluyendo especialmente el tipo de dato.
- Toda cláusula ORDER BY y GROUP BY puestas al final afectan a toda la tabla devuelta, sumados los resultados de ambos.
- UNION sin otra condición elimina registros duplicados (entendiendo por tales aquellos donde se repiten los mismos valores en TODAS las columnas comparadas).
- UNION ALL devuelve todos los registros, incluidos los duplicados.

En cuanto al ORDER BY, es jerárquico, y evalúa las columnas de izquierda a derecha.
Ordena primero por la primera columna, si y sólo si el valor de esa columna se repite, valores iguales de la primera se ordenan por la segunda columna.
En otras palabras:

Código MySQL:
Ver original
  1. A   1
  2. B   13
  3. C   2
  4. C   3
  5. C   56
  6. D   2
  7. E   98
  8. F   1
  9. F   23
  10. F   102

¿Se entiende?

Si los valores de la primera columna no se repiten, no tomará en cuenta las siguientes para el orden.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)