[opengeodb] Alle Städte und/oder Landkreise in einem Bundesland?
Jan-Simon Winkelmann
winkelmann at blue-metallic.de
Mit Mar 26 21:20:08 CET 2008
Hallo Stephan,
ich glaube ich habe etwas geschlafen als ich gepostet hab.
Ich meinte natürlich ich möchte alle Landkreise in einem angegebenen
Bundesland ;)
Entschuldige bitte die Verwirrung.
gruß
Jan
Stephan S schrieb:
>> Hallo,
>>
>> ich hab jetzt mal folgendes gebaut:
>>
>> SELECT
>> tp.text_val AS t,
>> n.text_val AS n, n.loc_id
>> FROM geodb_textdata AS gtv
>> INNER JOIN geodb_locations AS l ON gtv.loc_id=l.loc_id
>> INNER JOIN geodb_textdata AS tp ON l.loc_id=tp.loc_id
>> INNER JOIN geodb_textdata AS n ON l.loc_id=n.loc_id
>> WHERE
>> (l.loc_type=100500000)
>> AND (n.text_type=500100000)
>> AND (gtv.text_type=400100000)
>> AND (gtv.text_val=108)
>> AND (n.text_locale='de')
>>
>>
>> sollte mir eigentlich alle Bundesländer in Deutschland ausgeben.
>> Merkwürdigerweise bekomme ich aber viele Sachen doppelt, finde aber
>> den Fehler nicht.
>> Jemand eine Ahnung?
>>
>
> Du suchst hier alles was Teil von (gtv.text_type=400100000) der loc_id
> 108 ist (100500000 ist übrigens Landkreis, nicht Bundesland). 108 ist
> die loc_id vom Bundesland Brandenburg. Um alle Bundesländer zu erhalten
> fragst Du die geodb_locations nach Einträgen mit loc_type 100300000:
>
> SELECT *
> FROM geodb_locations
> WHERE loc_type = 100300000
>
> Das liefert 16 Einträge. Willst Du die Namen und die loc_id dazu:
>
> SELECT locations.loc_id, name.text_val
> FROM geodb_locations locations
> LEFT JOIN geodb_textdata name ON name.loc_id = locations.loc_id
> WHERE loc_type = 100300000 /* Typ für Bundesland */
> AND name.text_type = 500100000 /* Typ für Name */
> Falls Du mehrer Staaten importiert hast: Die Einschränkung auf "Teil
> von"
> müsste in diesem Fall dann für den Staat Deutschland gesetzt werden
> (loc_id
> 105).
>
> Eine Anmerkung noch: für die Analyse deiner SQL-Statements ist es für
> andere hilfreich, wenn die Aliase sprechend sind. Du weisst sicherlich
> was Du dir bei tp gedacht hast, ich leider nicht und so muss ich erst
> versuchen aus den Bedingungen zu erschließen, was Du möchtest.
>
> Schönen Gruß
> Stephan
>
>