online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Alex849284 vom 06.05.2022, 11:05 Options

Komplexe SQL-Abfrage - Starthilfe gesucht

Mahlzeit zusammen,

für ein kleines Projekt bin ich derzeit dabei, etwas tiefer in SQL abzutauchen als ursprünglich geplant. Hierbei bin ich auf ein kleines Problem gestoßen - ich würde mich freuen, wenn mir hier jemand den richtigen Denkanstoß liefern könnte. Ich benötige keinen fertigen Code sondern lediglich ein paar Stichworte oder Links, damit ich mich bei der Lösungssuche nicht in die falsche Richtung verlaufen.

Und zwar habe ich zwei Datenbanktabellen, welche ich für eine Abfrage verbinden möchte. Hier mal ein simples Beispiel.

Tabelle 1: Städte
stadtID - name
1 Berlin
2 Hamburg
3 München

Tabelle 2: Restaurants
restaurantID - name - stadtID
1 Giovannis 2
2 Monte Castello 1
3 Luigis 2

Um eine Übersicht zu liefern, möchte ich die Städte in einer Tabelle ausgeben, welche die beiden Spalten 'Stadt' und 'Restaurants' enthält, wobei in letzterer die Anzahl der Restaurants in dieser Stadt eingetragen wird. Diese Anzahl über die Restaurants-Tabelle abzufragen ist ja kein Problem, jedoch möchte ich die Tabelle auch nach der Anzahl der Restaurants sortierbar machen.

Ich hatte erst überlegt, die Daten entsprechend in ein Array einzulesen und dieses nachzusortieren, da mein Fall jedoch nicht so simpel wie das Beispiel ist, wäre das ziemlich umständlich. Deswegen hier die Frage, ob es eine Möglichkeit gibt, solche abgeleiteten Werte in die SQL-Abfrage zu integrieren.

Inspektor Google war bislang leider keine große Hilfe, deswegen freue ich mich über jeden Hinweis.

Gruß, Alex


Antwort schreiben

Antwort 1 von son_quatsch vom 06.05.2022, 11:36 Options

Zitat:
Diese Anzahl über die Restaurants-Tabelle abzufragen ist ja kein Problem, jedoch möchte ich die Tabelle auch nach der Anzahl der Restaurants sortierbar machen.
Das versteh ich nicht: wenn du schon "Tabelle 2: Restaurants" nach stadtID gruppiert abfragst kannst du jenes Ergebnis doch auch gleich noch sortieren. Ich schließe daraus, dass dir GROUP BY gar nichts sagt, genausowenig ORDER BY. Meld dich, wenn du mit dem selbst herausfinden irgendwo hängst...

Antwort 2 von RaHi vom 06.05.2022, 17:56 Options

Hallo Alex,

ich mach mal ein Versuch: Ein SQL sagt mehr als 1000 Worte:
SELECT Restaurants.Restaurantname, Staedte.Stadtname, Restaurantanzahl
FROM (Restaurants INNER JOIN Staedte ON Restaurants.stadtID = Staedte.StadtID)
inner join (SELECT stadtID, count(*) as Restaurantanzahl FROM Restaurants Group by StadtID) x on x.StadtID = Staedte.StadtID
ORDER BY Restaurantanzahl desc

Habe ein paar andere Feldnamen/Tabellennamen. Bei mir kommt folgendes raus:
Restaurantname	Stadtname	Restaurantanzahl
Luigis	Hamburg	2
Giovannis	Hamburg	2
Monte Castello	Berlin	1


Gruß
Ralf

Ähnliche Themen

SQL Admin, SQL Querys werden nicht übermittel
Wolfi_86  27.10.2008 - 31 Hits - 1 Antwort

Randomanweisung in SQL
morpheus__85  17.12.2008 - 38 Hits - 4 Antworten

sql beispiele
mysql  09.01.2009 - 119 Hits - 1 Antwort

SQL-Abfrage
sqlnewbie  12.04.2010 - 135 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026