Mysql
 sql >> Base de données >  >> RDS >> Mysql

Base de données Geonames :obtenir une hiérarchie complète (pays -> admin1 -> admin2 -> ville) avec une seule requête mysql

Vous ne devriez pas le demander à chaque fois.

J'ai fait cela en ajoutant une colonne "admin1Nameé et "admin2Name" et j'ai mis à jour leur valeur avec une simple requête SQL.

Cette base de données est très volumineuse, vous devriez donc penser à une colonne calculée.

EDIT :si vous voulez toujours le faire à chaque fois

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