1., 2. Para reunir tabelas e realizar operações entre elas, você precisa usar Joinhttp://dev.mysql.com/doc/refman/5.0/en/join.html caso contrário, sua fórmula está correta. Para criá-lo como uma coluna em sua consulta, basta escrevê-lo na parte de projeção (selecionar).Exemplo:
select
population_postcodes.*,
target_postcodes.*,
SQRT( POW(population_postcodes.longitude- target_postcodes.longitude, 2) + POW(population_postcodes.latitude-target_postcodes.latitude, 2) ) as distance
from population_postcodes JOIN target_postcodes
pontos 2 bis. Finalize com Ordem por column_name asc/deschttp://dev .mysql.com/doc/refman/5.0/en/sorting-rows.html
ponto 3. Escreva tudo como uma
sub-query
e selecione apenas o que você precisa na consulta superior. Veja também HAVING
http://dev.mysql.com/doc/refman/5.0 /en/subqueries.html
http://dev.mysql.com/doc /refman/5.0/en/group-by-extensions.html
ponto 4. procure maneiras de criar tabelas e aplique o que você aproximou
create table mytablename
select ... my projection columns
from ...
http://dev.mysql.com/doc/refman /5.1/en/create-table.html