Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2012, 06:24
nosoul
 
Fecha de Ingreso: marzo-2012
Mensajes: 9
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta [Mysql] Inner Join y Columnas Calculadas

Código:
puedo usar en una clausula ON de un INNER JOIN una columna calculada?

Les dejo el siguiente ejemplo con el que vengo trabajando este problema:

LA TABLA

+------+---------+--------+---------+

| id   | nombre  | codigo | tamanio |

+------+---------+--------+---------+

|    1 | Pelota3 |    100 |     420 |

|    2 | Carpa1  |    200 |     445 |

|    3 | Pelota2 |    100 |     440 |

|    4 | Carpa2  |    200 |     340 |
|    5 | Carpa3  |    100 |     350 |

|    6 | Pelota4 |    100 |     380 |

+------+---------+--------+---------+
LA CONSULTA

Código:
#
mysql> SELECT T1.* FROM tabla T1
#
    -> INNER JOIN
#
    -> (SELECT codigo, MIN(ABS(tamanio-400)) diferencia
#
    -> FROM tabla GROUP BY codigo) T2
#
    -> ON T1.codigo = T2.codigo AND ABS(T1.tamanio - 400) = T2.diferencia
#
    -> ORDER BY codigo;
para evitarme volver a hacer la cuenta de la columna calculada me gustaria poder volver a usarla en la clausula, poque si en ves de una resta, es una susecion de multiplicaciones restada por otras multiplicaciones, gasto bastantes recursos

Muchas Gracias