INSERT INTO hausanschluss(subcluster_nr) SELECT clusterflaeche.subcluster_nr FROM clusterflaeche, hausanschluss WHERE st_within(hausanschluss.the_geom, clusterflaeche.the_geom)
Das bewirkt, dass jene Fläche, in der ein Hausanschluss liegt berechnet wird in die Tabelle hausanschluss eingetragen wird. Allerdings als neuen Datensatz.
Also müsste es ein Update sein:
UPDATE hausanschluss SET subcluster_nr = (SELECT clusterflaeche.subcluster_nr FROM clusterflaeche, hausanschluss WHERE st_within(hausanschluss.the_geom, clusterflaeche.the_geom))
Nun meldet er FEHLER: als Ausdruck verwendete Unteranfrage ergab mehr als eine Zeile
Wie müsste die Abfrage lauten, dass das Ergebniss der Verschneidung in den entsprechenden Datensatz eingetragen wird?
aeh … sorry … hab die haelfte uebersehen … vergiss das mit dem IN
du musste ne sog. korrelierende subquery nehmen
UPDATE hausanschluss AS [color=Red]u[/color]
SET feld = (
SELECT feld
FROM andere_tabelle, hausanschluss AS [color=Blue]h[/color]
WHERE [color=Blue]h.key[/color] = [color=Red]u.key[/color] AND .... )
UPDATE hausanschluss AS u
SET subcluster_nr = (
SELECT clusterflaeche.subcluster_nr
FROM clusterflaeche, hausanschluss AS h
WHERE u.hausanschluss_id = h.hausanschluss_id
AND st_within(h.the_geom, clusterflaeche.the_geom))