Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Geonames-Datenbank:Erhalten einer vollständigen Hierarchie (Land -> admin1 -> admin2 -> Stadt) mit einer einzigen MySQL-Abfrage

Sie sollten es nicht jedes Mal anfordern.

Ich tat dies, indem ich eine Spalte "admin1Nameé und "admin2Name" hinzufügte und ihren Wert mit einer einfachen SQL-Abfrage aktualisierte.

Diese Datenbank ist sehr groß, daher sollten Sie über berechnete Spalten nachdenken.

EDIT:wenn du es immer noch machen willst

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