MiSo: MySQL / Datensätze Gruppieren

Ich weiss ich soll die Suchfunktion benutzen... hab ich getan. Irgendwas finden, dass ich verstehe und das mir weiterhilft tu ich nicht.

Ich hab sagen wir mal eine Tabelle mit Spalten "Vorname", "Nachname" etc. Jetzt möchte ich gerne "Famlilien" gruppieren. Ich will also ein Array mit jeweils array(Nachname => array("Vorname1","Vorname2")).

Ich habs mit GROUP BY versuchs unt GROUP_CONCAT, aber die machen nicht so ganz das, was ich haben will.

Weiss da jemand nen Rat?

mfg
Micha

  1. yo,

    Ich hab sagen wir mal eine Tabelle mit Spalten "Vorname", "Nachname" etc. Jetzt möchte ich gerne "Famlilien" gruppieren.

    die frage ist, was verstehst du unter familie, der gleiche nachname wird doch nicht dafür ausreichen oder ?

    Weiss da jemand nen Rat?

    ja, mit sicherheit. aber dazu bitte version von mysql posten, dein daten-design (der einen oder mehreren benötigten tabellen). beispieldaten, die in den tabellen stehen und die daruas resultierende ergebnismenge, die dabei rauskommen soll.

    Ilja

    1. ja, mit sicherheit. aber dazu bitte version von mysql posten, dein daten-design (der einen oder mehreren benötigten tabellen). beispieldaten, die in den tabellen stehen und die daruas resultierende ergebnismenge, die dabei rauskommen soll.

      Ilja

      MySQL 4.1.13, das mit den Familien warn Beispiel. Mir gehts hauptsächlich um das zusammenfassen unter einer Bestimmten Spalte.
      Beispiel:

      Baugruppen:
      ID | Baugruppe | Bauteil   | Stückzahl
      1  | Karte XY  | Slotblech | 1
      2  | Karte XY  | Eprom     | 1
      3  | Karte XY  | Flash-sp. | 2
      4  | Karte Z   | CPU       | 1

      Jetzt will ich beispielsweise die zu jeder "Baugruppe" dazugehörigen Komponenten. Wie stell ich das an?
      Das ergebnis sollte logischerweise auf irgendeine Art und weise ne Auflistung von "Slotblech, Eprom, Flash" mit "Karte XY" in Verbindung bringen.

      1. yo,

        Jetzt will ich beispielsweise die zu jeder "Baugruppe" dazugehörigen Komponenten. Wie stell ich das an?

        mysql bietet dafür eine sehr nützliche aggregat-funktion an.

        http://dev.mysql.com/doc/refman/4.1/en/group-by-functions.html

        SELECT baugruppe, GROUP_CONCAT(bauteil ORDER BY bauteil DESC SEPARATOR ',') AS Bauteile
        FROM baugruppen
        GROUP BY baugruppe
        ORDER BY baugruppe

        Ilja

        1. Danke. Hab ziemlich lange in Group - Funkionen reingeguckt, aber so wie das da erklärt wurde, hatt ich wohl nicht ganz verstanden, was die Funktion denn nun bewirken sollte :D

          mfg
          Micha

    2. Nun ja... war mir jetzt doch irgendwie zu dämlich mich mit SQL abzumühen. Habs einfach die Tabelle eingelesen und in ein mehrdimensionales Array gepackt...

      sah dann ca. so aus...

      $query = mysql_query("SELECT Baugruppe,Bauteil,Stückzahl FROM Baugruppen");

      while($raw = mysql_fetch_assoc($query))
      {
          $baugruppen[ $raw[Baugruppe] ][ $raw[Bauteil] ] = $raw[Stückzahl];
      }

      print_r($baugruppen);

      mfg
      Micha

  2. Hi,

    Ich hab sagen wir mal eine Tabelle mit Spalten "Vorname", "Nachname" etc. Jetzt möchte ich gerne "Famlilien" gruppieren. Ich will also ein Array mit jeweils array(Nachname => array("Vorname1","Vorname2")).

    ich schlage vor SQL-seitig mit einer SORTierung zu kommen und dann mit der serverseitigen Sprache Deiner Wahl das Array zu befüllen.

    Killi

  3. Hallo.

    Jetzt möchte ich gerne "Famlilien" gruppieren.

    Du bist Florist?
    MfG, at