Hallo zusammen,
Ich habe eine Datenbank, welche so aufgebaut ist:
Koordinaten | ID | Name | Ort | Datum
Die ersten 4 Felder sind klar. Dort sind halt diverse Personen mit einer ID und den jeweiligen Koordinaten eingetragen. Diese Personen haben dann aber auch noch verschiedene Daten (Feld 5, alles andere identisch) eingetragen. Es kann also sein dass für eine Person 200 Daten (Feld 5) eingetragen sind, wobei die ersten 4 Felder logischerweise immer dieselben sind.
Die Koordinaten werden nun mithilfe von PHP/JS auf einer Karte dargestellt. Im moment für jeden Eintrag in DER DB einen Punkt auf der Karte. Es kann also sein, wenn jemand 200 Daten eingetragen hat, dass auf der Karte auch 200 Punkte gemacht werden (was jedoch darstellungstechnisch egal ist, da die Punkte übereinander sind).
Nun möchte ich jedoch verständlicherweise, das pro Person/ID nur 1 Punkt gemacht wird.
Meine bisherige Abfrage sieht so aus:
SELECT koordinaten FROM tabelle WHERE id = '38'
(Wenn die Person mit der ID 38 Daten eingetragen hat, liefert mir SQL nun 200 Resultate zurück)
Nun habe ich es mit der DISTINCT und IN Funktion versucht:
SELECT koordinaten FROM tabelle WHERE id = '38' IN (SELECT DISTINCT id FROM tabelle)
Doch das führte leider auch nicht zum gewünschten Ergebnis.
Ich hoffe ich habe mich verständlich ausgedrückt und wäre um jegliche Hilfe dankbar!
Ich habe eine Datenbank, welche so aufgebaut ist:
Koordinaten | ID | Name | Ort | Datum
Die ersten 4 Felder sind klar. Dort sind halt diverse Personen mit einer ID und den jeweiligen Koordinaten eingetragen. Diese Personen haben dann aber auch noch verschiedene Daten (Feld 5, alles andere identisch) eingetragen. Es kann also sein dass für eine Person 200 Daten (Feld 5) eingetragen sind, wobei die ersten 4 Felder logischerweise immer dieselben sind.
Die Koordinaten werden nun mithilfe von PHP/JS auf einer Karte dargestellt. Im moment für jeden Eintrag in DER DB einen Punkt auf der Karte. Es kann also sein, wenn jemand 200 Daten eingetragen hat, dass auf der Karte auch 200 Punkte gemacht werden (was jedoch darstellungstechnisch egal ist, da die Punkte übereinander sind).
Nun möchte ich jedoch verständlicherweise, das pro Person/ID nur 1 Punkt gemacht wird.
Meine bisherige Abfrage sieht so aus:
SELECT koordinaten FROM tabelle WHERE id = '38'
(Wenn die Person mit der ID 38 Daten eingetragen hat, liefert mir SQL nun 200 Resultate zurück)
Nun habe ich es mit der DISTINCT und IN Funktion versucht:
SELECT koordinaten FROM tabelle WHERE id = '38' IN (SELECT DISTINCT id FROM tabelle)
Doch das führte leider auch nicht zum gewünschten Ergebnis.
Ich hoffe ich habe mich verständlich ausgedrückt und wäre um jegliche Hilfe dankbar!
Comment