Ver Mensaje Individual
  #24 (permalink)  
Antiguo 23/07/2010, 08:04
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: Optimizar datos

Cita:
a parte, me gustaria añadir 1 campo mas, que seria el mail del autor cuyo numero_autor sea = 1, en un campo nuevo,
Podrías manejar los e-Mail en otra columna, o bien al lado de cada nombre de autor:
Código MySQL:
Ver original
  1. SELECT genero, titulo, autores, resumen
  2.    (SELECT L.genero, L.titulo, GROUP_CONCAT(CONCAT(A.apellido, ', ', A.nombre, ' - ', A.email) SEPARATOR '; ') autores, resumen
  3.     FROM libro L INNER JOIN libro_autor USING(id_libro) INNER JOIN autor A USING(id_autor)
  4.     GROUP BY L.id_libro) TabaLibros
  5. ORDER BY genero, titulo;
Agregar un contador de autores, es simplemente una columna más:
Código MySQL:
Ver original
  1. SELECT genero, titulo, autores, resumen, CantAutores
  2.    (SELECT L.genero, L.titulo, GROUP_CONCAT(CONCAT(A.apellido, ', ', A.nombre, ' - ', A.email) SEPARATOR '; ') autores, resumen, COUNT(DISTINCT A.id_autor) CantAutores
  3.     FROM libro L INNER JOIN libro_autor USING(id_libro) INNER JOIN autor A USING(id_autor)
  4.     GROUP BY L.id_libro) TabaLibros
  5. ORDER BY genero, titulo;

El WHERE tiene que ir en la subconsulta interior:
Código MySQL:
Ver original
  1. SELECT genero, titulo, autores, resumen, CantAutores
  2.    (SELECT L.genero, L.titulo, GROUP_CONCAT(CONCAT(A.apellido, ', ', A.nombre, ' - ', A.email) SEPARATOR '; ') autores, resumen, COUNT(DISTINCT A.id_autor) CantAutores
  3.     FROM libro L INNER JOIN libro_autor USING(id_libro) INNER JOIN autor A USING(id_autor)
  4.     WHERE L.genero = 'terror'
  5.     GROUP BY L.id_libro) TabaLibros
  6. ORDER BY genero, titulo;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)