Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/01/2010, 06:14
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: UNION de 2 consultas, pasarlo a una sola consulta

gotito,
todo parece estar bien, incluso tu consulta primera, la adecuada para lo que buscas, excepto la fecha, pues tienes un formato que me hace sospechar que no usas un campo DATE. Debes usar un campo para fecha, y no un campo de tipo varchar. Para un campo fecha debes insertar la fecha con el formato yyyy-mm-dd, por ej. 2009-07-25. Luego podrás trabajar con ella y extraer los datos como quieras, por meses, buscando por rango de fechas, etc.
Parecen también faltarte otros inner join en cada parte del union para unir con la tabla alumno y poder traerte nombre y apellidos y datos personales, y añadir la cadena que indique si se trata de ciclo o bachillerato, y el instituto porque imagino que quieres esos datos. He puesto en los dos SELECT los campos alumno.nombre y alumno.apellidos. Pon tú en su lugar los nombres que hayas dado.

Código SQL:
Ver original
  1. (SELECT
  2.  Id_microrrelato, Titulo, Texto, Idioma, Fecha, 'bachillerato' grupo, alumno.nombre, alumno.apellidos, instituto.nombre
  3. FROM microrrelato
  4.  INNER JOIN alumno
  5.    ON microrrelato.Id_alu=alumno.Identificacion
  6.  INNER JOIN bachillerato
  7.    ON microrrelato.Id_alu=bachillerato.Identificacion
  8.  INNER JOIN instituto
  9.    ON bachillerato.Id_inst = instituto.Id_inst
  10.     WHERE microrrelato.Idioma='Castellano')
  11. UNION ALL
  12. (SELECT
  13.  Id_microrrelato, Titulo, Texto, Idioma, Fecha, 'ciclo', alumno.nombre, alumno.apellidos, instituto.nombre
  14. FROM microrrelato
  15.  INNER JOIN alumno
  16.    ON microrrelato.Id_alu=alumno.Identificacion
  17.  INNER JOIN ciclo
  18.    ON microrrelato.Id_alu=ciclo.Identificacion
  19.  INNER JOIN instituto
  20.    ON ciclo.Id_inst = instituto.Id_inst
  21.   WHERE microrrelato.Idioma='Castellano')
  22. ORDER BY Id_microrrelato DESC

Esto es lo que debes usar. Pruébalo directamente en consola o en phpmyadmin. Si funciona, y luego en PHP no, debes pedir ayuda en el foro PHP.

Última edición por jurena; 28/01/2010 a las 06:23