OT: Valores posibles [MYSQL]

juan pablo Rumie Vittar juanpablo_rv en yahoo.com.ar
Mie Ene 25 13:21:53 CLST 2006


El Date: Tue, 24 Jan 2006 18:25:26, "Julio Herrera"
<jherrera en chilered.com>, escribio:
 
> Feliz Año, hace tiempo que no molesto un poco en
> esta lista, saludos a todos
> que tengan un buen dia.

Igualmente, este es el espiritu que muchos aca no
tenemos (me incluyo)
 
> Mi pregunta me tiene los pelos de punta, me
> considero un poco lerdo en lo
> que se refiere a Mysql, revise el historial de la
> lista y estoy navegado en
> google sin resultado, tengo la siguiente tabla
> llamada ATRIBUTOS en MYSQL:
> 
>
products_attributes_id|products_id|options_id|options_values_id|
>
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>       1| 87| Color|Azul
>       2| 87| Color|Rojo
>       3| 87| Color|Verde
>       4| 87| Talla|L
>       5| 87| Talla|M
>       6| 87| Talla|XL
>       7| 87| Tela|Algodon
>       8| 87| Tela |Lino
> 
> Para el producto numero 87 debo entregar la
> siguiente lista:
> 
> Color Azul  Talla L  Tela Algodon
> Color Azul  Talla L  Tela Lino
> Color Azul  Talla M  Tela Algodon
> Color Azul  Talla M  Tela Lino
> Color Azul  Talla XL  Tela Algodon
> Color Azul  Talla XL  Tela Lino
> Color Rojo  Talla L  Tela Algodon
> Color Rojo  Talla L  Tela Lino
> Color Rojo  Talla M  Tela Algodon
> Color Rojo  Talla M  Tela Lino
> Color Rojo  Talla XL  Tela Algodon
> Color Rojo  Talla XL  Tela Lino
> Color Verde  Talla L  Tela Algodon
> Color Verde  Talla L  Tela Lino
> Color Verde  Talla M  Tela Algodon
> Color Verde  Talla M  Tela Lino
> Color Verde  Talla XL  Tela Algodon
> Color Verde  Talla XL  Tela Lino
> 
> Se que el asunto va por los JOIN, pero recien los
> estoy viendo y parece que
> este listado requiere un poco mas de mente.

Estimado Julio: creo que no te salvas de producto
cartesiano. A las apuradas se me ocurrio esto. Guardas
en una tabla auxiliar un 

T1<---select options_id,options_values_id from
ATRIBUTOS where options_id=´color´

en otra

T2<---select options_id,options_values_id from
ATRIBUTOS where options_id=´talla´

y en otra

T3<---select options_id,options_values_id from
ATRIBUTOS where options_id=´tela´

y por ultimo: 

select * from T1,T2,T3

Despues el DROP TABLE corespoendientes a T1, T2, T3
(todo esto puede ser un script que se lo pasas al
MySQL, al igual que fuanciona en PosgreSQL)

...y pueden haber mejores soluciones. Aun en esta, el
hecho de hacer proyecciones, se eliminan muchas
columnas innecesarias para que la consulta "temporal"
utilizada por MySQL no sea tan grande.

saludos y suerte
 
> Muchas gracias
> 
> 
> Atentamente,
> Julio Herrera Vega.
> 



	


	
		
___________________________________________________________ 
1GB gratis, Antivirus y Antispam 
Correo Yahoo!, el mejor correo web del mundo 
http://correo.yahoo.com.ar 



Más información sobre la lista de distribución Linux