Código SQL:
Ver originalCREATE TABLE #categoria(
id INT,
nombre VARCHAR(20)
)
CREATE TABLE #galeria(
id INT,
id_categoria INT,
nombre VARCHAR(20)
)
CREATE TABLE #fotos(
id INT,
foto VARCHAR(20),
id_galeria INT
)
INSERT INTO #categoria VALUES (1,'ropa')
INSERT INTO #categoria VALUES (2,'muebles')
INSERT INTO #galeria VALUES (1,1,'primavera')
INSERT INTO #galeria VALUES (2,2,'casa')
INSERT INTO #fotos VALUES (1,'foto1',1)
INSERT INTO #fotos VALUES (2,'foto2',1)
INSERT INTO #fotos VALUES (3,'foto3',1)
INSERT INTO #fotos VALUES (4,'foto1',2)
INSERT INTO #fotos VALUES (5,'foto2',2)
INSERT INTO #fotos VALUES (6,'foto3',2)
SELECT * FROM #categoria AS t1
LEFT JOIN #galeria AS t2 ON (t1.id=t2.id_categoria)
LEFT JOIN #fotos AS t3 ON (t2.id=t3.id_galeria)
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.....