Non dovresti richiederlo ogni volta.
L'ho fatto aggiungendo una colonna "admin1Nameé e "admin2Name" e ho aggiornato il loro valore con una semplice query SQL.
Questo database è molto grande, quindi dovresti pensare alla colonna calcolata.
EDIT :se vuoi ancora farlo ogni volta
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