Hola! Estoy tratando de hacer una consulta en mysql que no doy con lo correcto, espero que me puedan ayudar...
Las tablas son publicaciones (idPub, nombre) , autores (idAutor, nombre, apellido), autoresDePublicaciones (idAutor, idPublicacion) , generos (idGenero, nombre), generosDePublicaciones (idPub, idGenero)
Una publicacion puede tener uno, ninguno o varios autores y generos.
Mi problema es que necesito obtener las publicaciones de deterninado genero y determinado autor. El resutado tiene que tener el nombre de la publicacion, el id, todos los generos asignados y todos los autores asignados a la publicacion.
Ejemplo:
 
idPub| nombrePub|               autores| genero                   |
--------------------------------------------------------------------------------------------------------
1         | publicacion 1 | mario Benedetti, gioconda belli | novelas, biografias |
5         | publicacion 3 | mario Benedetti, juan perez      | novelas, cuentos |
 
En el ejemplo el autor era Mario Benedetti (id=2)I y el género novelas (id=5).
La consulta que estoy haciendo es:
 
SELECT p.idPub AS Codigo, p.nombre AS Nombre, group_concat( a.apellido ) AS Autores, (
SELECT group_concat( g.nombre )
FROM generos g, generosdepublicaciones gp
WHERE g.idGenero = gp.idGenero
AND gp.idPub = p.idPub
GROUP BY gp.idPub) AS Generos
FROM publicaciones p
LEFT JOIN autoresdepublicaciones ap ON ap.idPublicacion = p.idPub
LEFT JOIN autores a ON a.idAutor = ap.idAutor
WHERE a.idAutor=2 AND g.ifGenero=5
GROUP BY p.idPub
 
pero no reconoce el id del genero porque esta en una subconsulta supongo... no se estoy perdida... Ademas no puedo obtener el nombre y el apellido del autor porque si hago group_concat( concat(a.nombre, ' ' , a.apellido ) me da error
 
Bueno espero haber sido clara, muchas gracias. 
  
 

