mysql: "Doppelte" Datensätze wegen JOIN
Kalli
- datenbank
Hallo,
der Begriff "doppelt" stimmt hier nicht ganz, denn die gefundenen Datensätze sind unterschiedlich.
Gleichwohl kann ich sie nicht brauchen.
select DISTINCT
r.spalte1,
m.rekord
FROM
tabelle1 r
LEFT JOIN tabelle2 m
ON r.ID = m.ID
WHERE
r.ID = 3
Eigentlich benötige ich hier aus der Abfrage nur den jeweil letzten, sprich höchten Rekord (int-Spalte).
Wie gehe ich dabei vor?
Kalli
Wie gehe ich dabei vor?
Lass dir die Ergebnismenge mit ORDER BY absteigend sortieren und LIMITiere die Ergebnismenge auf ein Ergebnis.
MfG
bubble
Wie gehe ich dabei vor?
Lass dir die Ergebnismenge mit ORDER BY absteigend sortieren und LIMITiere die Ergebnismenge auf ein Ergebnis.
Hallo bubble.
Ja, so würde es gehen, wenn die Query so korrekt gewesen wäre. Ich habe einen Fehler in meiner Query. Sie hätte lauten müssen:
select DISTINCT
r.spalte1,
m.rekord
FROM
tabelle1 r
LEFT JOIN tabelle2 m
ON r.ID = m.ID
WHERE
r.ID > 3
Und ich benötige zu jeder ID nur den jeweils höchsten Rekord.
Kalli
Und ich benötige zu jeder ID nur den jeweils höchsten Rekord.
Dann wird dir ein GROUP BY weiterhelfen ;)
MfG
bubble
Und ich benötige zu jeder ID nur den jeweils höchsten Rekord.
Dann wird dir ein GROUP BY weiterhelfen ;)
Und wie würde man das machen, wenn man nicht mysql verwenden würde?
Kalli
Und ich benötige zu jeder ID nur den jeweils höchsten Rekord.
Dann wird dir ein GROUP BY weiterhelfen ;)
Und wie würde man das machen, wenn man nicht mysql verwenden würde?
Das hängt vom verwendetem DBMS ab (wobei ich von anderen als MySQL nicht viel Ahnung hab, da nie benutzt).
Allerdings geht es doch um MySQL oder? Sagt zumindest das Thema.
MfG
bubble
Und ich benötige zu jeder ID nur den jeweils höchsten Rekord.
Dann wird dir ein GROUP BY weiterhelfen ;)
Mein GROUP BY fasst mir jetzt zwar die Einträge zusammen, aber spuckt hierbei immer den kleinsten Rekord aus.
Wie bewege ich meine GROUP BY Klausel dazu, mir den höchsten Rekord auszuspucken?
Kalli
Wie bewege ich meine GROUP BY Klausel dazu, mir den höchsten Rekord auszuspucken?
Denkfehler. Das ist ja gar nicht die Aufgabe der GROUP BY Klausel.
Kalli