sql >> Database teknologi >  >> RDS >> Mysql

Geonames-database:få et fuldt hierarki (land -> admin1 -> admin2 -> by) med kun en mysql-forespørgsel

Du bør ikke anmode om det hver gang.

Jeg gjorde dette ved at tilføje en kolonne "admin1Nameé og "admin2Name", og jeg opdaterede deres værdi med en simpel SQL-forespørgsel.

Denne database er meget stor, så du bør tænke på beregnet kolonne.

EDIT :hvis du stadig vil gøre det hver gang

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



  1. Tilføjelse af data til et MySQL-databasefelt, der allerede har data i sig

  2. Hvilken datamaskeringsfunktion skal jeg bruge?

  3. VENSTRE JOIN kun første række

  4. forbinde tabeller og transponere kolonner og rækker