Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/06/2012, 14:13
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: Duda Consulta SQL

Tus consultas:
Código MySQL:
Ver original
  1.     Libros.titulo,
  2.     autor.nombre,
  3.     autor.apellido,
  4.     Libros.apubli,
  5.     autor.nacionalidad
  6.     autor, Libros, libroautor
  7.     autor.id_autor=libroautor.id_autor
  8.     AND libroautor.id_libro=Libros.id_libro
  9.     AND Libros.id_genero=2;
  10.     Libros.titulo,
  11.     autor.nombre,
  12.     autor.apellido,
  13.     Libros.apubli,
  14.     autor.nacionalidad
  15.     (Libros INNER JOIN libroautor ON Libros.id_libro=libroautor.id_libro)
  16.     INNER JOIN autor ON libroautor.id_autor=autor.id_autor
  17. WHERE Libros.id_genero=3;
Técnicamente no tienen errores.
Un mensaje de tipo "empty set" no es un error, sino que realmente no teiens registros que cumplan las condiciones.
Los datos deben cumplir la relación en las tres tablas al mismo tiempo, pero con un WHERE, deben cumplir una condición adicional.
Verifica los datos. No es un error de lógica sino de datos.

Para hacertelo más simple: Quitale el WHERE y la condición a la segunda consulta y verifica si devuelve datos.
Si devuelve datos, toma a cada uno de los autores y verifica que cada uno de los libros pertenezcan al género que buscas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)