Kombination von Abfragen

Halle Liste,

ich habe per Mausklick einen Punkt $x_geo $y_geo als php-Variable abgegriffen,
mit
SELECT * from flurstuecke WHERE Contains ( flurstuecke.the_geom, GeometryFromText ( ‘POINT ( $x_geo $y_geo )’, -1 ) );

erhalte ich das Flurst�ck/den Polygon innerhalb sich dieser Punkt befindet. Die Flurst�cksnummer befindet sich jedoch in einer anderen Tabelle namens flurst�cksnummern mit den Feldern Text=Flurst�cksnummern und the_geom=Geopunkt. Nun m�sste ich noch per SELECT sagen, hole mir die Flurst�cksnummer, die sich im Polygon befindet.

Wie kriege ich das in eine Abfrage um die Flurst�cksnummer zu erhalten.

W�re nett wenn mir jemand helfen k�nnte.

Vielen Dank im Voraus.

Jens

Ich würd sagen über einen JOIN dieser Tabellen, aber mich macht etwas stutzig, daß Du da in 2 Tabellen wohl die Geodaten speicherst, was nach einer verhunzten Tabellenstruktur ausschaut.

Habe ein geliefertes Shape mit Qgis eingelesen und da ist das so entstanden. Ich denke einfach mit JOIN geht das nicht, da ich ja innerhalb dieser Abfrage die 1. Abfrage integrieren muss und aus dem Ergebnis der ersten die Abfrage die zweite mit dem JOIN bilden muss. Scheint mir, dass es etwas komplizierter ist.

Nicht prinzipiell. Du kannst z.B. massstabsabhängige geometrische Repräsentationen eines Objekts haben, da macht das schon Sinn. Oder man möchte die Beschriftung an einem bestimmten Ort haben.
Hier sollte sinnvollerweise ein Join über die ID/Nummer des Flurstücks möglich sein. Andernfalls müsstest du noch eine geometrische Abfrage/Join/View machen, der die Flurstückspunkte mit den Flurstückspolygonen zusammenbringt. Dann wäre allerdings das Datenmodell wirklich zweifelhaft und ich würde um der Beschleunigung Willen eine neue Tabelle erzeugen, die das zusammenführt :wink:

Gruß Uwe

EDIT: so in etwa:

select *
  from (select t1.polygon, t2.nummer
               from polygone t1 
                 join nummern t2 on (t1.id = t2.id)) a
   where st_contains(a.polygon, st_geometryfromtext('Point('||x|| ||y||')', -1)

Eventuell muß du den join durch eine geometrische Abfrage ersetzen.