Häufigkeitsermittlung über mehrere Tabellen

  • hi
    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.episodenid
    ORDER BY anzahl DESC
    LIMIT 10

  • am besten du postest mal die Tabellen mit ein paar Beispieldaten, damit wir die Möglichkeit haben ein wenig zu testen aber das ganze lässt sich auf jedenfall mit der Funktion DISTINCT realisieren... Ich brauch da selber im ein paar Anläufe bis das bei mir klappt^^ aber ungefähr in die Richtung gehts:



    Doku dazu gibts natürlich auch
    ;)

    Gruß crAzywuLf :D

  • Erfolgreich getestet mit folgenden Daten:

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    Einmal editiert, zuletzt von SinnlosS (6. Mai 2010 um 12:46)