Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda Consulta SQL

Estas en el tema de Duda Consulta SQL en el foro de Mysql en Foros del Web. Muy buenas tengo que hacer una sentencia sql para insertarla en un procedimiento y me da empty row cuando tiene datos. A ver si me ...
  #1 (permalink)  
Antiguo 21/06/2012, 13:36
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Duda Consulta SQL

Muy buenas tengo que hacer una sentencia sql para insertarla en un procedimiento y me da empty row cuando tiene datos. A ver si me podeis echar una mano con algo que se me escapa y no veo

Os dejo el MR y la consulta:

Libros (id_libro, isbn, titulo, edicion, apubli, id_genero, id_fuente, observaciones, leido, prestado, precio, iva)
autor (id_autor, nombre apellido, nacionalidad)
libroautor (id_libro, id_autor)
genero (id_genero, nombre)

La consulta trata de mostrar el titulo del libro, el autor(nombre y apellido nacionalidad) año de publicación

Y esta es mi consulta:

SELECT Libros.titulo, autor.nombre, autor.apellido, Libros.apubli, autor.nacionalidad
FROM autor, Libros, libroautor
WHERE autor.id_autor=libroautor.id_autor AND libroautor.id_libro=Libros.id_libro AND Libros.id_genero=2;

PD: para el ejemplo he puesto el id_genero desde libros, para la realidad tendría que hacer una subconsulta que me permitiera insertar el nombre del genero para el parámetro del cursor.

Gracias de antemano Y un cordial saludo.
  #2 (permalink)  
Antiguo 21/06/2012, 14:00
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Duda Consulta SQL

Tambien he probado ha hacerlo con un INNER JOIN y me sigue dando EMPTY SET

SELECT Libros.titulo, autor.nombre, autor.apellido, Libros.apubli, autor.nacionalidad
FROM (Libros INNER JOIN libroautor ON Libros.id_libro=libroautor.id_libro) INNER JOIN autor ON libroautor.id_autor=autor.id_autor
WHERE Libros.id_genero=3;
  #3 (permalink)  
Antiguo 21/06/2012, 14:13
Avatar de 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, 4 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)
  #4 (permalink)  
Antiguo 21/06/2012, 14:20
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Duda Consulta SQL

Solucionado. Estaba bien no tenia correctamente puesto los datos. Lo malo de llevar 8 horas delante de la pantalla...Mil disculpas y hasta otra!!
  #5 (permalink)  
Antiguo 21/06/2012, 14:22
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Duda Consulta SQL

Muchisimas gracias por tu respuesta gnzsoloyo siento haberte molestado por esta tonteria. Voy a ver que tal se me da el procedimiento.

Un saludo
  #6 (permalink)  
Antiguo 21/06/2012, 14:38
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Duda Consulta SQL

Pasa todo el tiempo.
Lo mejor es tomarse un par de horas, irse al cine o a comer algo y después recién volver a mirar.
Hay otra opción de descanso, pero tu compañía puede tomarlo mal si la dejás para agarrar el teclado...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 21/06/2012, 15:39
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Duda Consulta SQL

Jajajaja ya te digo yo que la ultima es la mejor y tengo una compañia muy comprensiva ;) Muchas gracias y hasta otra!!

Etiquetas: select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.