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

consulta que se me complica

Estas en el tema de consulta que se me complica en el foro de Mysql en Foros del Web. Hola Necesito seleccionar los distintos productos pertenecientes a la familia $familia, y que ademàs, se muestre una imagen por cada uno. Tengo una tabla familias ...
  #1 (permalink)  
Antiguo 11/06/2008, 13:30
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
consulta que se me complica

Hola
Necesito seleccionar los distintos productos pertenecientes a la familia $familia, y que ademàs, se muestre una imagen por cada uno.
Tengo una tabla familias (id, titulo), otra productos (id, id_familia, nombre, descripcion) y otra fotos (id, id_producto, foto).

si hago esta consulta

select distinct id_producto from ollearis_fotos inner join ollearis_productos on ollearis_productos.id=ollearis_fotos.id_producto where ollearis_productos.familia='$familia'

me devuelve sòlo el id_producto (Claro, porque es lo que le estoy pidiendo), pero yo quiero que tambièn me devuelva el nombre del producto y la foto

el tema es que si hago esto

select distinct id_producto, ollearis_productos.nombre, ollearis_fotos.foto from ollearis_fotos inner join ollearis_productos on ollearis_productos.id=ollearis_fotos.id_producto where ollearis_productos.familia='$familia'

me devuelve los registros repetidos, porque hay varias fotos por cada producto, entonces el producto con id 1 me lo devuelve 3 veces, el 2, 5, etc., de acuerdo a la cantidad de fotos asignadas en cada uno.

alguna idea????

gracias.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #2 (permalink)  
Antiguo 11/06/2008, 22:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: consulta que se me complica

Si quieres ver los productos, pero solo una vez, usa group by por el id producto, a sabiendas de que te mostrará sólo una vez el producto con la primera foto que le hayas asignado. Yo usaría una sintaxis como esta:

SELECT id_producto, ollearis_productos.nombre, ollearis_fotos.foto
FROM ollearis_familias
INNER JOIN ollearis_productos ON ollearis_productos.familia = ollearis_familias.id
INNER JOIN ollearis_fotos ON ollearis_productos.id = ollearis_fotos.id_producto
WHERE ollearis_familias.id =1 GROUP BY ollearis_productos.id

Esto te mostrará los que tienen foto, pero si quieres que te muestre también los que no tienen foto, tendrás que usar LEFT JOIN...

Última edición por jurena; 12/06/2008 a las 13:52
  #3 (permalink)  
Antiguo 12/06/2008, 13:45
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: consulta que se me complica

anduvo perfecto, muchas gracias
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
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 22:52.