Ver Mensaje Individual
  #10 (permalink)  
Antiguo 26/06/2009, 09:53
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: Relación de tabla

Bueno, la cosa es relativamente sencilla.
Por lo que dices quieres que la consulta te devuelva todos los registros de las tablas tt_tabla1 y tt_tabla2 ordenados y agrupados en función de las fechas que figuran en la tt_tabla1.
Para que la cosa sea rápida y de escritura simple, lo mejor es reconstruir el DATE que se ha perdido al descomponer innecesariamente la fecha en tres campos (digo innecesariamente, porque entre otras cosas de esa forma usas 8 bytes, cuando con un DATE, alcanza y es más controlable).
Bien, la reconstrucción la haremos en una subconsulta:
Código sql:
Ver original
  1. SELECT DATE(CONCAT(`yid`,'-',`mid`,'-',`did`)) FECHA
  2. FROM tt_tabla1;

A esto lo usaremos como tabla de un INNER JOIN con la segunda tabla:
Código sql:
Ver original
  1. SELECT T1.*, T2.*
  2. FROM
  3.     (SELECT eid, DATE(CONCAT(`yid`,'-',`mid`,'-',`did`)) FECHA, subtitle, content
  4.     FROM tt_tabla1) T1
  5.     INNER JOIN
  6.     tt_tabla2 T2 ON T1.FECHA =  DATE(T2.`date`)
  7. ORDER BY T1.FECHA, T2.id
Esto debería funcionar.

Hay una segunda posibilidad, que debería funcionar igual, con una sintaxis más simple, y es esta:
Código sql:
Ver original
  1. SELECT T1.*, T2.*
  2. FROM
  3.     tt_tabla1 T1
  4.     INNER JOIN
  5.     tt_tabla2 T2 USING(`did`,`mid`,`yid`)
  6. ORDER BY DATE(CONCAT(`yid`,'-',`mid`,'-',`did`)), T2.id

Hay que probar.

Yo personalmente sigo sin entender qué ventaja le vieron a fragmentar la fecha en tres campos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)