Ergebnis 1 bis 4 von 4

Thema: Kombination von Abfragen

  1. #1
    jentser ist offline Neuer Benutzer
    Registriert seit
    28.11.2011
    Beiträge
    2

    Standard 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

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von jentser Beitrag anzeigen
    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.
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    jentser ist offline Neuer Benutzer
    Registriert seit
    28.11.2011
    Beiträge
    2

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    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.

  4. #4
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    794

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    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.
    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

    Gruß Uwe

    EDIT: so in etwa:
    Code:
    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.
    Geändert von Gisman (28.11.2011 um 16:15 Uhr)
    Have a lot of fun!

Ähnliche Themen

  1. Datenbank abfragen
    Von burkhard im Forum Allgemeines
    Antworten: 6
    Letzter Beitrag: 29.03.2011, 14:40
  2. SQL-Abfragen mit Priorisierung
    Von ipConfig im Forum Programmierung
    Antworten: 8
    Letzter Beitrag: 17.01.2011, 14:18
  3. Antworten: 8
    Letzter Beitrag: 05.11.2010, 13:36
  4. Frage Abfragen-Tuning
    Von martin.sauer im Forum SQL
    Antworten: 2
    Letzter Beitrag: 26.09.2008, 13:14
  5. \" in sql Abfragen
    Von Darian im Forum SQL
    Antworten: 5
    Letzter Beitrag: 25.08.2007, 11:11

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum