MySQL Häufigkeitsermittlung über mehrere Tabellen

Xindo

Well-known member
ID: 295232
L
20 Oktober 2007
716
43
hi
Eigentlich habe ich keine Probleme in Sachen PHP oder SQL aber bei dieser Aufgabe komme ich einfach nicht auf die Lösung und ich hoffe ihr wisst weiter oder habt sowas schon einmal gemacht :)

ich habe 3 Tabellen (anschauliche Hilfe ist unten): in der ersten werden ID's von Grafikkarten gespeichert (zuordnung; gleiche ID's können öfters gespeichert werden). die 2 Tabelle beinhaltet die ID der Grafikkarte, den Namen und eine ID für den dazugehörigen Grafikkartenhersteller. Die 3 Tabelle beinhaltet die Grafikkartenhersteller! Jetzt möchte ich die 5 häufigsten Grafikkartenhersteller heraussuchen und dies anhand der häufigkeit der in der 1. Tabelle gespeicherten IDs von Grafikkarten

Ist dies möglich? Ist komplieziert und ich komme nicht drauf. ich hoffe ihr könnt mir helfen und versteht was ich meine =)

Hilfestellung:
Tabelle zuordnung:
userid | grafikkartenid (zuordnung zu ID von Tabelle Grafikkarten)

Tabelle Grafikkarten
ID | name | herstellerid (zuordnung zu ID von Tabelle Hersteller)

Tabelle Hersteller
ID | name

Das war mein erster Versuch (macht jedoch was anderes als ich will):

SELECT COUNT(he.id) AS anzahl, he.name AS hename
FROM `".DB_PREF."zuordnung` AS zu
LEFT JOIN `".DB_PREF."grafikkarten` AS gr ON zu.grafikkartenid = gr.id
LEFT JOIN `".DB_PREF."hersteller` AS he ON gr.herstellerid = he.id
GROUP BY zu.grafikkartenid
ORDER BY anzahl DESC
LIMIT 10

Klar kann ich alles über mehrere Queries machen, doch ich würde es gerne mit einem machen (wenn möglich) =)


gruß
Xindo
 
Probiers mal so:
Code:
SELECT he.id, COUNT(*) AS anzahl, he.name AS hename
FROM `".DB_PREF."zuordnung` AS zu
LEFT JOIN `".DB_PREF."grafikkarten` AS gr ON zu.grafikkartenid = gr.id
LEFT JOIN `".DB_PREF."hersteller` AS he ON gr.herstellerid = he.id
GROUP BY he.id
ORDER BY anzahl DESC
LIMIT 10
 
hey danke

ich glaube es klappt^^

hab meinen Fehler gefunden.
der war im Count()

he.id muss ich nicht auslesen

Viele Dank