Ergebnis 1 bis 3 von 3

Thema: Häufigkeitsermittlung über mehrere Tabellen

  1. #1
    Unregistriert
    Gast

    Standard 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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Häufigkeitsermittlung über mehrere Tabellen

    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:
    Code:
    SELECT 
        DISTINCT(gr.id), 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

    Doku dazu gibts natürlich auch
    Gruß crAzywuLf

  3. #3
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Häufigkeitsermittlung über mehrere Tabellen

    Code:
    SELECT
        COUNT(z.userid),h.name,g.herstellerid
    FROM
        zuordnung z
            INNER JOIN
                grafikkarten g
                    ON
                    g.id=z.grafikkartenid
                INNER JOIN
                    hersteller h
                        ON
                        h.id=g.herstellerid
    GROUP BY
        g.herstellerid
    Erfolgreich getestet mit folgenden Daten:
    Code:
    --
    -- Tabellenstruktur für Tabelle `grafikkarten`
    --
    
    CREATE TABLE IF NOT EXISTS `grafikkarten` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `herstellerid` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
    
    --
    -- Daten für Tabelle `grafikkarten`
    --
    
    INSERT INTO `grafikkarten` (`id`, `herstellerid`) VALUES
    (1, 1),
    (2, 1),
    (3, 2),
    (4, 2);
    
    -- --------------------------------------------------------
    
    --
    -- Tabellenstruktur für Tabelle `hersteller`
    --
    
    CREATE TABLE IF NOT EXISTS `hersteller` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
    
    --
    -- Daten für Tabelle `hersteller`
    --
    
    INSERT INTO `hersteller` (`id`, `name`) VALUES
    (1, 'a'),
    (2, 'b');
    
    -- --------------------------------------------------------
    
    --
    -- Tabellenstruktur für Tabelle `zuordnung`
    --
    
    CREATE TABLE IF NOT EXISTS `zuordnung` (
      `userid` int(11) NOT NULL,
      `grafikkartenid` int(11) NOT NULL,
      PRIMARY KEY (`userid`,`grafikkartenid`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    --
    -- Daten für Tabelle `zuordnung`
    --
    
    INSERT INTO `zuordnung` (`userid`, `grafikkartenid`) VALUES
    (1, 1),
    (2, 1),
    (3, 2),
    (4, 3),
    (5, 4);
    Geändert von SinnlosS (06.05.2010 um 13:46 Uhr)
    "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

Ähnliche Themen

  1. suchfunktion über mehrere plone installationen
    Von driver im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 2
    Letzter Beitrag: 17.01.2008, 13:12
  2. Mehrere Tabellen und formulare auf eine Seite
    Von Ernest im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 11.12.2006, 16:12
  3. Hintergrund über mehrere Frames
    Von Gast im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 10
    Letzter Beitrag: 04.04.2006, 15:21
  4. Mehrere Tabellen umspannender Außenrahmen
    Von Martin11 im Forum HTML & CSS Forum
    Antworten: 20
    Letzter Beitrag: 28.03.2006, 16:49
  5. mehrere virtuelle logins über 1 hauptlogin?
    Von -=[Mad]=- im Forum Webhoster - Provider - (free) Webspace - Server - Domain
    Antworten: 2
    Letzter Beitrag: 13.09.2005, 18:16

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •