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

Consulta en relación M-N y que no me repita los valores ya encontrados.

Estas en el tema de Consulta en relación M-N y que no me repita los valores ya encontrados. en el foro de Mysql en Foros del Web. Hola amig@s; Tengo una tabla de imágenes, estas imágenes se relacionan con unos conceptos, al ser una relación M-N (una imagen puede tener muchos conceptos ...
  #1 (permalink)  
Antiguo 21/05/2006, 16:06
Avatar de forecast  
Fecha de Ingreso: octubre-2004
Mensajes: 259
Antigüedad: 19 años, 6 meses
Puntos: 4
Pregunta Consulta en relación M-N y que no me repita los valores ya encontrados.

Hola amig@s;

Tengo una tabla de imágenes, estas imágenes se relacionan con unos conceptos, al ser una relación M-N (una imagen puede tener muchos conceptos y un concepto puede pertenecer a muchas imágenes) tengo una tabla relacional que llamaremos imagenes_conceptos formada por el id de una imagen y el id de un concepto.

Quiero extraer todas las imágenes que están relacionadas con unos determinados conceptos, la consulta que he diseñado es algo así:

Código HTML:
SELECT imagen.id_imagen, imagen.titulo FROM imagen, imagen_conceptos  WHERE imagen.id_imagen=imagen_conceptos.id_imagen AND (imagen_conceptos.id_concepto='3' OR imagen_conceptos.id_concepto='4')
Esta consulta funciona, pero me da un problema; si existe una imagen que está asociada al concepto 3 y 4 me la repite, es decir me la incluye dos veces, con lo cual al tratar de saber cuantas imágenes tengo (con un mysql_num_rows) obtengo un valor equivocado (pues me incluye dichas imágenes dos veces).

¿Alguien me puede indicar como hacer para que no se repitan las que cumplen ambos criterios y sólo me las incluya una vez?

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 21/05/2006, 18:21
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 1 mes
Puntos: 3
puedes usar "distinct":

SELECT DISTINCT imagen.id_imagen, imagen.titulo FROM imagen, imagen_conceptos WHERE imagen.id_imagen=imagen_conceptos.id_imagen AND (imagen_conceptos.id_concepto='3' OR imagen_conceptos.id_concepto='4')
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
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 17:13.