Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Banco de dados Geonames:obtendo uma hierarquia completa (país -> admin1 -> admin2 -> cidade) com uma única consulta mysql


Você não deve solicitá-lo todas as vezes.

Fiz isso adicionando uma coluna "admin1Nameé e "admin2Name" e atualizei seu valor com uma consulta SQL simples.

Este banco de dados é muito grande, então você deve pensar na coluna calculada.

EDIT:se você ainda quiser fazer isso sempre
SELECT 
    locgeoname.*, 
    loc_countryinfo.name, loc_admin1Codes.name, loc_admin2Codes.name, 
FROM 
    loc_geoname 
INNER JOIN 
    loc_countryinfo ON loc_countryinfo.iso_alpha2 = loc_geoname.country
INNER JOIN 
    loc_admin1Codes ON code = loc_countryinfo.iso_alpha2 + '.' + admin1  
INNER JOIN 
    loc_admin2Codes ON code = loc_countryinfo.iso_alpha2 + '.' + admin1 + '.' + admin2