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

Consulta a Tablas relacionadas con LIKE y OR me devuelve registros repetidos

Estas en el tema de Consulta a Tablas relacionadas con LIKE y OR me devuelve registros repetidos en el foro de Mysql en Foros del Web. Hola. Me encuentro con un problema al realizar una consulta a MySQL. Mi consulta original era: Código: SELECT * FROM Libros WHERE Titulo LIKE '%Hola%' ...
  #1 (permalink)  
Antiguo 28/03/2008, 09:41
 
Fecha de Ingreso: febrero-2008
Mensajes: 18
Antigüedad: 16 años, 2 meses
Puntos: 0
Consulta a Tablas relacionadas con LIKE y OR me devuelve registros repetidos

Hola.
Me encuentro con un problema al realizar una consulta a MySQL.

Mi consulta original era:

Código:
SELECT * FROM Libros WHERE Titulo LIKE '%Hola%' OR Autor LIKE '%Hola%' OR Editorial LIKE '%Hola%'
Lo cual me devuelve lo que quiero, solo que hay un campo llamado "Genero", el cual contiene un numero que debe ser relacionado con la tabla "Generos", para obtener, por ej. la palabra "Ciencia Ficción" en lugar del numero 20

Cambie entonces mi Consulta por esta:

Código:
SELECT l.*, g.Nombre As GeneroN FROM Libros l, Generos g WHERE l.Genero = g.idg AND l.Titulo LIKE '%Hola%' OR l.Autor LIKE '%Hola%' OR l.Editorial LIKE '%Hola%'
El problema de esto es que me devuelve registros repetidos. Concretamente me devuelve el mismo libro tantas veces como registros haya en la tabla Generos.

Adjunto una imagen donde se ve el mismo registro repetido con cada uno de los generos:
http://img522.imageshack.us/img522/486/pantallazoka8.png
  #2 (permalink)  
Antiguo 28/03/2008, 10:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 18
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Consulta a Tablas relacionadas con LIKE y OR me devuelve registros repetidos

Disculpen, pregunté porque pase todo el día de ayer y algunas horas hoy intentando arreglarlo, y recién caí cual era mi problema.
Resulta que debería haber separado la primer condición (que el número de género sea igual al id de genero en la tabla Generos) de las demás.

En fin, asi quedó la consulta por si a alguien le sirve:
Código:
SELECT l.*, g.Nombre As GeneroN FROM Libros l, Generos g WHERE l.Genero = g.idg AND (l.Titulo LIKE '%Hola%' OR l.Autor LIKE '%Hola%' OR l.Editorial LIKE '%Hola%')
Eso era nada mas, las parentesis.

Saludos.
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 16:23.