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

Como llamo a mi bd que devuelva datos repetidos.

Estas en el tema de Como llamo a mi bd que devuelva datos repetidos. en el foro de Mysql en Foros del Web. Hola soy nuevo en BD, la duda es la siguiente tengo una tabla relacional Cita: publicacion_unidad id_pu id_publicacion id_unidad Y las otras dos tablas Unidades ...
  #1 (permalink)  
Antiguo 03/10/2009, 09:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 169
Antigüedad: 16 años, 4 meses
Puntos: 6
Pregunta Como llamo a mi bd que devuelva datos repetidos.

Hola soy nuevo en BD, la duda es la siguiente tengo una tabla relacional

Cita:
publicacion_unidad
id_pu
id_publicacion
id_unidad
Y las otras dos tablas Unidades y Publicaciones. Luego una unidad puede tener muchas publicaciones y una publicación puede tener muchas unidades.

Hago el siguiente llamado:

Cita:
SELECT * FROM publicaciones p, publicacion_unidad pu WHERE (pu.id_unidad='1' OR pu.id_unidad='2' ) AND p.tipo = 'n' ORDER BY `fecha_creacion` DESC LIMIT 0 , 10
Y me tira el montón de publicaciones repetidas, porque la publicación tiene varias unidades.

Si alguien me pudo entender, como puedo solucionar este problema, pues me gustaria que solo tire una de cada publicación sin repetir. Gracias.
__________________
Inspiracion
  #2 (permalink)  
Antiguo 03/10/2009, 10:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Respuesta: Como llamo a mi bd que devuelva datos repetidos.

Prueba añadiéndole un GROUP BY p
  #3 (permalink)  
Antiguo 03/10/2009, 10:14
 
Fecha de Ingreso: diciembre-2007
Mensajes: 169
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: Como llamo a mi bd que devuelva datos repetidos.

Gracias DarkKing, pero parece que no es eso. Ahora me di cuenta de mi error, sucede que yo debo hacer esto:

tengo mi tabla PublicacionUnidades y quiero solo sacar las id_publicaciones y me las tira todas, pero yo las quiero pero sin repetir. Por ejemplo si tengo esto

Código PHP:
+----+-----------+------------+------------+
id id_publicacion    id_unidad      |
+----+-----------+------------+------------+
|  
10                1              |
|  
11                1              |
|  
10                2              |
|  
8                 3              |
+----+-----------+------------+------------+ 
Si hago esto:

SELECT id_publicacion FROM PublicacionUnidades WHERE id_unidad ='1' OR id_unidad ='2', entonces me retorna esto:
Código PHP:
+----+-----------+--+
id_publicacion    |
+----+-----------+--+
|  
10               |
|  
11               |
|  
10               |
+----+-----------+--+ 
Pero yo quiero que me retorne lo mismo pero sin repetir id_publicaciones, ósea esto:
Código PHP:
+----+-----------+--+
id_publicacion    |
+----+-----------+--+
|  
10               |
|  
11               |
+----+-----------+--+ 
Eso, pero no se si se puede hacer, gracias a todos :D
__________________
Inspiracion

Última edición por albertcito; 03/10/2009 a las 10:19
  #4 (permalink)  
Antiguo 03/10/2009, 10:26
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, 5 meses
Puntos: 2658
Respuesta: Como llamo a mi bd que devuelva datos repetidos.

Agrupalos por el campo que los identifica:
Código sql:
Ver original
  1. SELECT *
  2. FROM publicaciones p, publicacion_unidad pu
  3. WHERE
  4.       pu.id_unidad IN (1, 2)
  5.       AND p.tipo = 'n'
  6. GROUP BY id_unidad
  7. ORDER BY `fecha_creacion`;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/10/2009, 10:43
 
Fecha de Ingreso: diciembre-2007
Mensajes: 169
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: Como llamo a mi bd que devuelva datos repetidos.

Gracias gnzsoloyo, me resulto bien, pero tu solución es al revés, Buscando por hay encontré esto: "DISTINCT". Y Así me parece que me resulta:

Código PHP:
SELECT DISTINCT (p.id_publicacion
FROM publicaciones ppublicacion_unidad pu 
WHERE
    pu
.id_unidad IN (12
    AND 
p.tipo 'n' 
ORDER BY `fecha_creacion
Pero ahora la idea es que pueda extraer todos los datos y no solamente la id_publicacion. Gracias chicos.
__________________
Inspiracion
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 13:37.