[MySQL] SELECT über 2 Tabellen mit mehreren Daten in der zweiten

Aranita

Grünschnabel
Hallo,

ich habe folgendes Problem:

Tabelle 1: ID, name
Tabelle 2: id_tabelle1, bewertung

Beispiel:
Tabelle 1: 1, Heinrich
Tabelle 1: 2, Susi

Tabelle 2: 1,1
Tabelle 2: 1,3
Tabelle 2: 2,1
Tabelle 2: 1,2
Tabelle 2: 2,1

Jetzt möchte ich die Daten so sortieren, dass die mit der besten Bewertung oben stehen. Im Beispiel wäre das Datensatz 2, gefolgt von Datensatz 1. Tabelle 2 kann x Einträge erhalten. Wie kann ich das realisieren? Alle meine Versuche sind jämmerlich gescheitert.

Danke im Voraus für eure Hilfe.
 
Tabelle 2: 1,1
Tabelle 2: 1,3
Tabelle 2: 2,1
Tabelle 2: 1,2
Tabelle 2: 2,1

Was soll den da bei Tabelle 2 der primary key sein?
Also allgemein kannst du eine solche anfrage so stellen;
select name , bewertung
from test a,test2 b
where a.id=b.id
order by bewertung;
 
Hallo,

erst mal danke für den Tipp, aber leider geht das nicht, denn dann bekomme ich folgendes Ergebnis:
Heinrich
Susi
Susi
Heinrich
Heinrich

ich will aber folgendes:
Susi
Heinrich

Das heisst, alle Bewertungen müssen zusammengefasst werden und der Durchschnitt daraus errechnet werden.

Oder geht das gar nicht mit einer reinen SQL-Abfrage?

Keine Profis hier? :)

Der primary Key der zweiten Tabelle ist für diesen Fall völlig unerheblich, es gibt ihn und er ist einfach eine Dummy-ID.
 
Achso das ging aus der ursprünglichen Frage nicht so hervor ich habs mal an einem Bsp probiert das funktioniert so:
select name, schnitt
from (
select name, avg(bewertung)as schnitt
from test a, test2 b
where a.id=b.fremd
group by name
) a
order by schnitt
Funktioniert aber nur mit neuerem MySQL sonst musst du eine temporäre Tabelle erstellen und dann diese mit dem order sortieren.
Wenn du nur die namen brauchst lässt du natürlich das schnitt weg.
 

Neue Beiträge

Zurück