Warum funktioniert die SQL-Abfrage nicht?
Die Abfrage soll Bestellinformationen für Bestellungen zwischen dem 1. Januar 2023 und dem 31. Dezember 2023 abrufen. Die Ergebnisse sollen nach dem Bestelldatum absteigend sortiert werden. Leider funktioniert das nicht. Hier ist meine Abfrage:
SELECT Bestellungen.Bestellnummer, Kunden.Name, Bestellungen.Bestelldatum
FROM Bestellungen
JOIN Kunden ON Bestellungen.KundenID = Kunden.KundenID
WHERE Bestellungen.Bestelldatum BETWEEN '2023-01-01' AND '2023-12-31'
ORDER BY Bestellungen.Bestelldatum DESC
LIMIT 10
GROUP BY Kunden.Name;
3 Antworten
GROUP BY verwendet man in der Regel mit einer Aggregatsfunktion.
Versuche Mal die Angabe ob es ein Left oder ein Right Join ist.
Das bezieht sich darauf ob die Anfrage der Daten im Join links vom Join wichtig ist oder rechts.
Wie soll das denn gehen? Da ist doch nur rechts vom joib was, außer man macht keine Zeilenumbrüche
So?
SELECT Bestellungen.Bestellnummer, Kunden.Name, Bestellungen.Bestelldatum
FROM Bestellungen
JOIN RIGHT Kunden ON Bestellungen.KundenID = Kunden.KundenID
WHERE Bestellungen.Bestelldatum BETWEEN '2023-01-01' AND '2023-12-31'
ORDER BY Bestellungen.Bestelldatum DESC
LIMIT 10
GROUP BY Kunden.Name;
Erst Right dann Join. Die Frage ist aber an welcher Stelle dir die Datenbank sagt, hier ist ein Fehler, bei der Abfrage.
Der liebe Fragesteller soll sich mal darum bemühen etwas selbst nachzudenken und den eigenen Code anzusehen. Ich denke der es ist offensichtlich, wieso der Code nicht zur Fragestellung passt.
Die Reihenfolge ist soweit ich weiss nicht egal, sortiere das mal:
SELECT .. FROM .. JOIN .. WHERE .. GROUP BY .. ORDER BY .. LIMIT...
Was ist denn left oder right join?