Есть два способа сделать это без временных таблиц.
Во-первых, вы должны повторить вычисление, где
SELECT yourtable.nombre, yourtable.otras_cosas,
Date_format(Now(), '%Y') - Date_format(fecha_nac, '%Y') - (
Date_format(Now(), '00-%m-%d') < Date_format(fecha_nac, '00-%m-%d'
) ) AS
edad
FROM yourtable
WHERE Date_format(Now(), '%Y') - Date_format(fecha_nac, '%Y') - (
Date_format(Now(), '00-%m-%d') < Date_format(fecha_nac, '00-%m-%d'
) ) BETWEEN 1 AND 50
Во-вторых, использовать встроенное представление
SELECT t.nombre, t.otras_cosas, t.edad
FROM (SELECT nombre, otras_cosas, Date_format(Now(), '%Y') - Date_format(fecha_nac, '%Y') - (
Date_format(Now(), '00-%m-%d') <
Date_format(fecha_nac, '00-%m-%d') ) AS edad
FROM yourtable) t
WHERE t.edad BETWEEN 1 AND 50