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

Problema con registros repetidos

Estas en el tema de Problema con registros repetidos en el foro de Bases de Datos General en Foros del Web. Hola a todos… estimados me gustaría si me pueden ayudar con una petición a la base de datos, ya que realmente no sé si mi ...
  #1 (permalink)  
Antiguo 27/03/2016, 21:58
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Problema con registros repetidos

Hola a todos… estimados me gustaría si me pueden ayudar con una petición a la base de datos, ya que realmente no sé si mi problema se deba al tipo de petición a la BD o al código php, ya que este me entrega los registros repetidos, haber si me dan una manito chequenado el codigo porfavor…

La parte del código donde me da problemas es este…

Código SQL:
Ver original
  1. SELECT DISTINCTROW IDGALERIA, TITULO, DESCRIPCION, FKCATEGORIA, CATEGORIA_ID,
  2. DATE_FORMAT( FECHA_ALTA, '%d/%m/%Y' ) FECHA FROM galerias INNER JOIN categoria WHERE CATEGORIA_ID='$id'

y este es el codigo completo por si se necesita....

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

Quedo atento a cualquier información… si necesitan más datos favor solicitarlos. Gracias de antemano.!!

Última edición por gnzsoloyo; 27/03/2016 a las 22:14
  #2 (permalink)  
Antiguo 27/03/2016, 22:22
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: Problema con registros repetidos

Cita:
me entrega los registros repetidos
Empecemos por una aclaración que constantemente tenemos que hacer, debido a que no siempre parece ser claro lo que es una "repetición" a nivel de base de datos...

En Base de Datos, se considera que una consulta devuelve registros repetidos si y sólo si TODAS las columnas entre dos registros cualesquiera tiene exactamente el mismo valor.
SI al menos UNA de las columnas se diferencia entre estos registros, entonces eso NO ES repetición.

Los registros de una tabla devuelva en una consulta de la base de datos se debe considerar como una unidad. Es decir, el registro entero es una sola cosa. En consecuencia la repetición de algunos valores sobre las mismas columnas, pero sólo de algunas de ellas, no representa una dup`licación de resultados.

Por otro lado, ten muy en cuenta que si tienes entre dos tablas una relación de cardinalidad 1:N, es perfectamente esperable y el resultado normal de la consulta, que todos los datos de cardinalidad 1 se repitan una vez por cada registro en la segunda tabla (cardinalidad N) en donde estén relacionados. Esto se infiere que es loi que te está sucediendo dado que usas un INNER JOIN entre tablas cuyos nombres sugieren tal cardinalidad.

¿Queda claro?

Verifica eso y veamos.

Postea el resultado que obtienes y un ejemplo de lo que tu supones que deberías obtener. No postees código PHP, sólo SQL y ejemplos visibles de DATOS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 27/03/2016 a las 22:34
  #3 (permalink)  
Antiguo 28/03/2016, 01:32
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

Gracias, me queda claro cuando te refieres a repetición, era un concepto que no conocía y claramente lo confundía…. Ahora sobre el tecnicismo refiriéndose a lo demás, dup, cardinalidad 1:N y etc no tengo ni la menor idea sobre ello, solo llevo 5 meses aprendiendo sobre este mundo de forma autodidacta, por ello no puedo aun expresar bien las palabras apropiadas y lógicamente hago lo que puedo…

Ahora tratare de explicar lo que quiero de la forma más clara que puedo, ya que no tengo idea si el problema pasa por php o la forma de llamar los datos a la BD.

Estoy desarrollando una galería de fotos, en la cual cada galería se debe mostrar por su categoría correspondiente… para ello tengo un index.php donde tengo un menú con los nombres de cada categoría como enlaces y cada una de estas categorías la paso por GET en la url, quedando como ejemplo.-galeria.php?cat=1 galeria.php?cat=2 galeria.php?cat=3 etc.. la información la tomo de dos tablas principalmente “categorías” y “galerías”

Ahora como debería quedar:

En galeria.php?cat=1
Título categoría: Retrato --------> registro se tomo de la tabla “categoría”
Nombre galería: Tercera edad --------> registro se tomo de la tabla “galerias”
Fecha: 11/22/33 -------------> registro se tomo de la tabla “galerias”
Imagen: foto.jpg --------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ---------> registro se tomo de la tabla “galerias”

En galeria.php?cat=2
Título categoría: Moda ----------> registro se tomo de la tabla “categoría”
Nombre galería: Trajes de noche -------> registro se tomo de la tabla “galerias”
Fecha: 11/22/33 -----------> registro se tomo de la tabla “galerias”
Imagen: foto.jpg -------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería --------> registro se tomo de la tabla “galerias”

Y así sucesivamente…. Todas tiene el mismo orden, ahora el problema que yo tengo es que en mi panel de control he cargado 1 galería de retrato y esta no aparece, solo el titulo. Tengo 2 galerías más cargadas, infantil y solo se visualiza una, tengo 4 galerías de moda y solo me muestra dos, tengo 2 de matrimonio y me muestra 6… sobre los títulos de cada categoría se imprimen bien, en ello no hay problema alguno.

La cantidad de galerias que puedo cargar es ilimitada y la idea es que cada galerías que yo cargue según su categoría sean las que aparezcan y no las que solo las base de datos me quiera mostrar… se comprende? Si me puedes ayudar con esta info sería ideal, sino comprendes igual te agradezco. Saludos!!
  #4 (permalink)  
Antiguo 28/03/2016, 05:33
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: Problema con registros repetidos

Cita:
Gracias, me queda claro cuando te refieres a repetición, era un concepto que no conocía y claramente lo confundía…. Ahora sobre el tecnicismo refiriéndose a lo demás, dup, cardinalidad 1:N y etc no tengo ni la menor idea sobre ello, solo llevo 5 meses aprendiendo sobre este mundo de forma autodidacta, por ello no puedo aun expresar bien las palabras apropiadas y lógicamente hago lo que puedo…
Se denomina "cardinalidad" en las relaciones de entidades del modelo E-R al numero de instancias de una entidad que se relaciona en forma unívoca con las de otra entidad. En BBDD se expresa cuando describes la relación, como por ejemplo:
1) Una única galería puede relacionarse con una o más fotografías.
2) Cada imagen sólo se relaciona con una única galería.
Estas dos definiciones nos indican que existe una relación 1:N entre Galería e Imagen, ya que por cada Galería puede haber N imágenes, y a la inversa sólo puede haber una galería relacionada con una imagen cualquiera.

¿Se entiende?

Este concepto es determinante porque nos indica que obligatoriamente la tabla Imágenes, que es la representación de la entidad "Imagen" tiene que llevar una columna que es FK de la tabla Galería (una entidad no es lo mismo que una tabla, una es parte del modelo lógico, y la tabla es una construcción física).

¿Se va entendiendo?

En tu caso ejemplificado hay una condición que estoy poniendo, y que luego es también determinante a la hora de consultar:

"Una única galería puede relacionarse con una o más fotografías."

El "puede" significa que la relación no es exactamente "1", sino que pueden no haber imágenes asociadas a una galería, es decir, la galería podría estar vacía... y eso modlifica la consulta. Implicaría que en lugar de ser INNER JOIN, la cláusula es LEFT JOIN.

Por otro lado, si lo que quieres es obtener todas las galerías con sus fotos, es posible en una única consulta. Para eso se usa una cláusula IN() de la siguiente forma:

Código SQL:
Ver original
  1. SELECT
  2.    DISTINCTROW IDGALERIA,
  3.    TITULO,
  4.    DESCRIPCION,
  5.    CATEGORIA_ID,
  6.    DATE_FORMAT( FECHA_ALTA, '%d/%m/%Y' ) FECHA,
  7.    IMAGEN
  8. FROM galerias G  
  9.     INNER JOIN fotos f ON G.galeria_id= f.galeria_id
  10.     INNER JOIN categoria C ON G.FKCATEGORIA = C.CATEGORIA_ID
  11. WHERE CATEGORIA_ID IN(1, 2, 3, 5,12).

El listado de las categorias, separado por comas, es algo que debes construir programáticamente.

Ahora bien, noto que tampoco estás respetando la sintaxis de un INNER JOIN, dado que no incluyes la clausula ON, ni especificas la relación.
Los DBMS no funcionan por telepatía. No pueden saber cuáles son los campos que relacionan las tablas, porque para ello no leen la definicion de las tablas, por lo que no acceden a las FK. La meta de las FK es mantener la integridad referencial, cosa que sólo está vinculada con las sentencias INSERT, UPDATE y DELETE, y NO con SELECT.
Por consecuencia, debes especificar la relación en el FROM, o de lo contrario podrían generarse respuestas incorrectas:
Código SQL:
Ver original
  1. SELECT
  2.    DISTINCTROW IDGALERIA,
  3.    TITULO,
  4.    DESCRIPCION,
  5.    CATEGORIA_ID,
  6.    DATE_FORMAT( FECHA_ALTA, '%d/%m/%Y' ) FECHA,
  7.    IMAGEN
  8. FROM galerias G  
  9.     INNER JOIN fotos f ON G.galeria_id= f.galeria_id
  10.     INNER JOIN categoria C ON G.FKCATEGORIA = C.CATEGORIA_ID
  11. WHERE CATEGORIA_ID IN(1, 2, 3, 5,12).

En cuanto a cómo lo vayas a mostrar en la pantalla, eso es tema de programación y eso es OFF TOPIC en los foros de BBDD. Sólo te puedo decir que simplemente tomas el nombre de la galería para mostrarlo en cada pagina, como lo deseas, y dentro de esa pagina tomas el resto de los datos para generar la lista.
En el foro de PHP ya respondí varias veces como se hace ese tipo de listados. Busca esa info por allí.
__________________
¿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 28/03/2016, 12:14
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

Gracias por tu respuesta, comprendo bien lo que me dices, en especial lo último que escribes… “simplemente tomas el nombre de la galería para mostrarlo en cada página, como lo deseas, y dentro de esa pagina tomas el resto de los datos para generar la lista”

Solo necesito llamar a su categoría correspondiente… el resto de los datos para generar la galerías y lista ya lo tengo resuelto, de hecho la galería funciona muy bien sin tenerla con categorías… si pudiera enviarte el script para que lo verifiques sería ideal ya que aquí no se puede publicar como lo tenía… pero aun así te muestro lo que se puede

Para las galerías que también pasan por GET:

Código SQL:
Ver original
  1. SELECT DESCRIPCION, TITULO FROM galerias WHERE IDGALERIA='$id'

Para las fotos y su despliege:

Código SQL:
Ver original
  1. SELECT * FROM FOTOS WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY POSICION

Para llamar a las categorias (que no lo tengo resuelto y es motivo de este post)

Código SQL:
Ver original
  1. SELECT DISTINCTROW IDGALERIA, TITULO, DESCRIPCION, FKCATEGORIA, CATEGORIA_ID, DATE_FORMAT( FECHA_ALTA, '%d/%m/%Y' ) FECHA FROM galerias INNER JOIN categoria WHERE CATEGORIA_ID='$id'

para las fotos que seran el thumb de la galeria:

Código SQL:
Ver original
  1. SELECT ARCHIVO FROM fotos WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY RAND() LIMIT 1


Otro dato muy importante.. es que la columna FKCATEGORIA de la tabla galerias, esta no esta cumpliendo la labor que deberia, pero no es por error sino que yo la deje solo para que me tomara el nombre (en texto) y no el ID, la columna que realmente cumple el rol del FK por donde pasa el ID es CATEGORIA_ID de la tabla galerias... esto esta asi, ya que no supe comenzar bien la estructura de las tablas.!

espero estos datos sirvan de algo... Gracias por entregar tus conocimientos y tiempo, me ayuda mucho.. saludos!

Última edición por marciano_79; 28/03/2016 a las 12:46
  #6 (permalink)  
Antiguo 30/03/2016, 08:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con registros repetidos

Podrias poner un pequeño ejemplo de tus datos, porque dices que te repite datos pero quizas esos datos que tu dices no sean realmente repetidos ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 30/03/2016, 15:01
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

Hola muchas gracias Libras por responder… no tengo mucho de donde afirmarme pero hice unos cambios en algunas columnas de tablas y bueno ahora el resultado que obtengo es este…

En index.php tengo tres enlaces con los nombres de cada categoría, resultados que traigo de la base de datos. Tabla categorías.


Retrato
Moda
Infantiles


En galería-fotografica.php?cat=Retrato En galería-fotografica.php?cat=Moda Y En galería-fotografica.php?cat=Infantiles
El resultado es el mismo, todas las rutas me entregan las mismas galerías de fotos, con el mismo título de categoría, en este caso “Retrato” se repite en todos los link :

Así es como se ve actualmente el resultado:

Pagina galería-fotografica.php?cat=Retrato:
Título categoría: Retrato ---> registro se tomo de la tabla “galerias” NOMBRECATEGORIA


Nombre galería: Uno-Moda---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
__________________________________

Nombre galería: Uno-Moda---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
__________________________________

Nombre galería:Dos-Retrato---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
__________________________________

Nombre galería: Uno-Infantiles---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
___________________________________

Nombre galería: Uno-Retrato---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION


Ahora como debería verse:

Pagina: galería-fotografica.php?cat=Retrato

Título categoría: Retrato ---> registro se tomo de la tabla “galerias” NOMBRECATEGORIA

Nombre galería: Uno-Retrato---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
___________________________

Nombre galería: Dos-Retrato---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
___________________________

Nombre galería: Tres-Retrato---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION

En Pagina: galería-fotografica.php?cat=Moda

Título categoría: Moda ---> registro se tomo de la tabla “galerias” NOMBRECATEGORIA

Nombre galería: Uno-Moda---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
__________________________________

Nombre galería: Dos-Moda---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION


En Pagina: galería-fotografica.php?cat=infantiles

Título categoría: Infantiles ---> registro se tomo de la tabla “galerias” NOMBRECATEGORIA

Nombre galería: Uno-Infantiles---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
__________________________________________________ _____

Resumen: tengo 3 galerías Retrato, 2 galerías Moda, y 1 galería Infantil. Total 6 galerías creadas… hasta el momento solo veo 5 galerías juntas sin orden y todas aparecen de igual forma por cada categoría


Las consultas salen de una página index.php para las categorías así:

Código SQL:
Ver original
  1. <<<SQL
  2. SELECT DISTINCT
  3.      IDCATEGORIA,
  4.      NOMBRE_CATEGORIA
  5. FROM
  6.      categoria
  7.  
  8. INNER JOIN galerias ON categoria.IDCATEGORIA=galerias.FKCATEGORIA_ID
  9.  
  10. SQL;

Ahora las consultas que salen de una página galerías-fotograficas.php para las galerías es así: (aquí según yo estaría el problema)

Código SQL:
Ver original
  1. <<<SQL
  2.              SELECT
  3.                   IDGALERIA,
  4.                   TITULO,
  5.                   DESCRIPCION,
  6.                       NOMBRECATEGORIA,
  7.                   FKCATEGORIA_ID,
  8.                   DATE_FORMAT( FECHA_ALTA, '%d/%m/%Y' ) FECHA
  9.              FROM
  10.                   galerias
  11.             INNER JOIN categoria ON galerias.FKCATEGORIA_ID=categoria.IDCATEGORIA
  12.              ORDER BY
  13.                   FECHA_ALTA DESC
  14. SQL;

para el archivo que se usara de thumb de la galeria

Código SQL:
Ver original
  1. "SELECT ARCHIVO FROM fotos WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY RAND() LIMIT 1";

Para las galerías que también pasan por GET:

Código SQL:
Ver original
  1. "SELECT DESCRIPCION, TITULO FROM galerias WHERE IDGALERIA='$id'";

Para las fotos y su despliege:

Código SQL:
Ver original
  1. "SELECT * FROM FOTOS WHERE FKGALERIA='$id' AND ESTADO='visible' ORDER BY POSICION";

Esta es la info que tengo, no se de que mejor forma poder explicarme es super complicado.... crees que se pueda resolver aqui? favor me avisas para saber si se puede hacer algo.. de ante mano muchas gracias por tu atención.!

PD: no tomes encuenta las publicaciones mias de mas arriba ya que las columnas de una tabla fue modificda.! Gracias.
  #8 (permalink)  
Antiguo 30/03/2016, 15:32
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con registros repetidos

Demasiada explicacion que sobra para el foro de bases de datos, dices que tienes registros repetidos, bueno yo esperaba algo como esto:

Tabla Galerias
id Nombre
1 Ropa
2 Moda

Tabla categoria
id Nombre
1 ???
2 ???

tabla imagenes
campo1 campo2 campo3 campoN
??? ??? ??? ???


Este es mi query:

Código SQL:
Ver original
  1. SELECT * FROM categorias.....

Y me regresa esto:

campo1 campo2 campo3

y lo que quiero es:

campo1 campo2

Se entiende? no ocupas explicar como se maneja tu pagina ni cuales son los parametros que pasas por GET o POST(eso no me interesa) si preguntas por la parte de base de datos nada mas pon inormacion relevante a la base
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 30/03/2016, 16:10
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

Entendi que era por los datos en pantalla... pero como habia indicado al principio no se si mi problema pasa por base de datos o por el scrip de php... sorry.

Tabla categoria:

IDCATEGORIA
NOMBRE_CATEGORIA

Tabla galerias:

IDGALERIA
TITULO
FECHA_ALTA
DESCRIPCION
NOMBRECATEGORIA
FKCATEGORIA_ID

Tabla fotos

IDFOTO
NOMBRE
ARCHIVO
POSICION
ESTADO
FKGALERIA

y no se como escribir el retorno de lo que quiero de la forma que me lo pides...
  #10 (permalink)  
Antiguo 30/03/2016, 16:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con registros repetidos

Código SQL:
Ver original
  1. CREATE TABLE #categoria(
  2. id INT,
  3. nombre VARCHAR(20)
  4. )
  5.  
  6. CREATE TABLE #galeria(
  7. id INT,
  8. id_categoria INT,
  9. nombre VARCHAR(20)
  10. )
  11.  
  12. CREATE TABLE #fotos(
  13. id INT,
  14. foto VARCHAR(20),
  15. id_galeria INT
  16. )
  17.  
  18. INSERT INTO #categoria VALUES (1,'ropa')
  19. INSERT INTO #categoria VALUES (2,'muebles')
  20.  
  21.  
  22. INSERT INTO #galeria VALUES (1,1,'primavera')
  23. INSERT INTO #galeria VALUES (2,2,'casa')
  24.  
  25.  
  26. INSERT INTO #fotos VALUES (1,'foto1',1)
  27. INSERT INTO #fotos VALUES (2,'foto2',1)
  28. INSERT INTO #fotos VALUES (3,'foto3',1)
  29.  
  30.  
  31. INSERT INTO #fotos VALUES (4,'foto1',2)
  32. INSERT INTO #fotos VALUES (5,'foto2',2)
  33. INSERT INTO #fotos VALUES (6,'foto3',2)
  34.  
  35.  
  36. SELECT * FROM #categoria AS t1
  37. LEFT JOIN #galeria AS t2 ON (t1.id=t2.id_categoria)
  38. LEFT JOIN #fotos AS t3 ON (t2.id=t3.id_galeria)
  39. WHERE t1.id=1
Resultado:

foto
foto1
foto2
foto3


Con un esquema como el que muestras y un query como el que te dejo puedes obtener las fotos de la galeria sin repetir, ya de ti depende si pones mas filtros por ejemplo galeria, o el nombre de la foto.....

No se donde tienes el problema de que te muestre duplicados los resultados.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 30/03/2016, 16:30
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

Ya tranquilo, gracias de todos modos...
  #12 (permalink)  
Antiguo 30/03/2016, 16:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con registros repetidos

No se a que te refieres con el comentario de Tranquilo.....pero si estoy haciendo un esfuerzo por tratar de enteder tu problematica y responderte minimo deberias de analizar lo que se te dice..........
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 30/03/2016, 16:45
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

Estoy analisando la información enviada por ti... y eso de tranquilo lo escribi por que habia un comentario que borrastes decia algo como "saaaaaaa" despues redactastes lo del codigo... Gracias.!
  #14 (permalink)  
Antiguo 30/03/2016, 16:52
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: Problema con registros repetidos

Cita:
Iniciado por marciano_79 Ver Mensaje

y no se como escribir el retorno de lo que quiero de la forma que me lo pides...
Hagámoslo simple, y para que entiendas lo que te hemos pedido varias veces: Un ejemplo de resultados.

Cuando se habla de un ejemplo de lo que se quiere mostrar no estamos hablando de que nos listes un montón de texto con detalles irrelevantes como este:
Cita:
Nombre galería: Uno-Moda---> registro se tomo de la tabla “galerias” TITULO
Fecha: 11/22/33 ------> registro se tomo de la tabla “galerias” FECHA
Imagen: foto.jpg ------> registro se tomo de la tabla “fotos” por su FKGALERIA
Descripción: info de galería ----> registro se tomo de la tabla “galerias” DESCRIPCION
Eso es una descripcion desnormalizada de datos con explicaciones que no vienen al caso.
Lo que necesitamos es que nos muestres algo como esto:


O esto:



Es decir, una tabla gráfica de como se ve el resultado en tu página HOY, y otro ejemplo de como tu dices que DEBERIA mostrarse.

Eso nos puede orientar para entender dos cosas: 1) A que le llamas "duplicados", y 2) cuál sería la solucion para lograr lo que deseas y en qué parte (base de datos o vista en web).

¿Se entiende?

Si quieres crear manualmente el ejemplo en Excel o PowerPoint, hazlo, y luego subes la captura de las pantallas a algún repositorio y lo insertas acá como imagen. Pero por favor, no vayas a poner pantallas fotografiadas con celular o dibujos a mano escaneados. Soon inentendibles.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 30/03/2016, 17:59
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Tabla categoria


Tabla galerias


Tabla fotos


que extraño las imagenes son de 900 px porque se ven tan chicas ?

aahh me aburrio esta cosa.! eliminen este post, vere que puedo hacer por otro lado.. gracias por su tiempo!

Última edición por gnzsoloyo; 30/03/2016 a las 19:42
  #16 (permalink)  
Antiguo 30/03/2016, 18:18
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: Problema con registros repetidos

No te dije una captura de las consultas de las tablas, sino de las tablas como se verán en la página web.
¿No se entiende la idea?

No me interesa lo que ves en la base sino lo que el usuario verá en su pantalla m
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 30/03/2016, 18:25
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

si se entiende, pero aun no puedo subir la imagen, primero mande la de las tablas porsiacaso y ahora no puedo subir la de como se veria enla web.. me colapso este sistema.! gracias por todo de verdad!!
  #18 (permalink)  
Antiguo 31/03/2016, 08:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con registros repetidos

El esquema es parecido al que te mande, probaste el query que te dije? funciono o no? repitio la info o no??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #19 (permalink)  
Antiguo 31/03/2016, 13:04
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

Si Libras porsupuesto que lo probe, intente incluirlo de diferentes formas modificandolo a mis tablas y mi scrip, pero en todo me marca error, lógicamente es un problema mio por ignorancia... ahora voy a intentar subir los ejemplos de las tablas de como se ve y como deberia quedar... Gracias.!
  #20 (permalink)  
Antiguo 31/03/2016, 13:17
Avatar de marciano_79  
Fecha de Ingreso: agosto-2009
Mensajes: 88
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con registros repetidos

La tabla que está en rojo es como se ve actualmente la información devuelta..

y la que esta en azul, es como se deberían ver las galerías... está bien así ? saludos nuevamente.



Etiquetas: fecha, mysql, registros, repetidos, select
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 06:06.