Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/06/2010, 06:53
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: Combinar dos tablas (1:n)

Código MySQL:
Ver original
  1. SELECT MIN(f.pic_id)
  2. FROM fotos AS f
  3. GROUP BY f.pic_prd_id

El primer id de foto de cada producto (de los que tengan foto).


Código MySQL:
Ver original
  1. SELECT f1.pic_id,f1.pic_prd_id,f1.pic_dsc,f1.pic_file
  2. FROM fotos AS f1
  3. WHERE f1.pic_id in (SELECT MIN(f.pic_id)
  4.                                    FROM fotos AS f
  5.                                    GROUP BY f.pic_prd_id)

El resto de datos de las fotos elegidas


Código MySQL:
Ver original
  1. SELECT p.prd_id,p.prd_nm,f2.pic_id,f2.pic_prd_id,f2.pic_dsc,f2.pic_file
  2. FROM productos AS p
  3. LEFT JOIN (SELECT f1.pic_id,f1.pic_prd_id,f1.pic_dsc,f1.pic_file
  4.                      FROM fotos AS f1
  5.                      WHERE f1.pic_id in (SELECT MIN(f.pic_id)
  6.                                        FROM fotos AS f
  7.                                        GROUP BY f.pic_prd_id)) AS f2
  8. ON p.prd_id=f2.pic_prd_id

Ahora hacemos un LEFT JOIN con los productos para que aparezcan los productos que no tengan foto (los campos referidos a la foto en este caso seran nulos)

El ultimo select debería darte lo que buscas....

Quim