Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/12/2011, 05:36
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: todos los productos que tenga imágenes?

Código MySQL:
Ver original
  1. FROM producto P INNER JOIN imagen I ON P.producto_id = I.producto_id
  2. WHERE P.user_id=TAL;

Esto te dará todos los productos del usuario TAL que tengan imagen, pero si un producto tiene mas de una imagen saldrá tantas veces como imagenes tenga....

Por el INNER JOIN aquellos productos que no cumplan P.producto_id = I.producto_id no saldran y el WHERE lo limitará a los productos que ademas sean del usuario TAL. Es decir INNER JOIN muestra todas las parejas de registros donde se cumpla la condicón indicada en ON, por lo tanto un producto que no tiene imagen como su registro no tiene pareja en la tabla imagenes, no sale, pero por lo mismo uno que tenga dos imagenes saldrá dos veces (en otro entorno se diria poligamia, pero aqui seria el producto cartesiano entre los registros que cumplen la condición)

(no uses * es mejor que pongas la lista de los campos que realmente vas a usar precedidos del alias de la tabla origen y separados por coma p.e. P.id,P.user_id,...,I.id,...)


Ojo esto te traera una tabla tabulada con los valores de todos los campos, para crear una estructura como la que muestras tendrás que trabajarlo con progrmación externa, ya te dijo gnzsoloyo que en SQL no existen los array...


id | user_id | title | body | price | quantity | condition | status | deleted | created |modified | id | parent_id | product_id | size | name | deleted | created | modified

una fila como esta para cada pareja de registros, todos los datos del producto seguidos de los de la imagen...

Feliz año a ti y a gnzsoloyo....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 28/12/2011 a las 05:48