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