Guten Tag,
meine Aufgabe ist es, in einer abgegrenzten geografischen Region Veranstaltungen zu finden. Ich probiere seit gestern nachmittag, zwei Tabellen gemeinsam abzufragen und kriegs nicht hin.
In der "akt_orte" sind Orte mit geografischer Länge und Breite. Der Unique Key ist "akt_orte.nr". Ich will nun Orte finden, deren Länge von ... bis ... und deren Breite von ... bis ... geht, also auf der Landkarte ein Rechteck:
SELECT nr from akt_orte WHERE
( akt_orte.breitengrad <= '".$nord."'
AND akt_orte.breitengrad >= '".$sued."'
AND akt_orte.laengengrad <= '".$ost."'
AND akt_orte.laengengrad >= '".$west."' )
In der Tabelle "termine" sind Veranstaltungstermine mit Datum, Veranstaltungstyp usw. Unique Key ist "termine.nr". Ich suche einen bestimmten Zeitraum:
SELECT * from termine WHERE
( termine.tag >= '".$tag_von."'
AND termine.tag <= '".$tag_bis."' )
Nun habe ich von der einen Abfrage die Orte der Region, von der anderen Abfrage bundesweit die Veranstaltungen des Zeitraums.
Wie komme ich zu der Schnittmenge ?
Unter ORACLE würde es so gehen, aber das funzt bei MySQL nicht:
SELECT * from termine WHERE
( termine.tag >= '".$tag_von."'
AND termine.tag <= '".$tag_bis."'
AND ort_nr IN (
SELECT nr from akt_orte WHERE
( akt_orte.breitengrad <= '".$nord."'
AND akt_orte.breitengrad >= '".$sued."'
AND akt_orte.laengengrad <= '".$ost."'
AND akt_orte.laengengrad >= '".$west."' )
)
Habe schon den Hinweis auf JOIN bekommen, aber es will nicht.
Bin für jede Hilfe seehr dankbar.
Gruß aus Worms, Kalle