[gelöst] Group_concat Prob

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [gelöst] Group_concat Prob

    Hallo zusammen!
    suche eine Möglichkeit zwei nahezu identische Felder 2 Tabellen zu "addieren" als ein Feld (instr und other)

    Tabelle A (Auszug)
    ID | Instr | level
    --------------------------
    1 | Gitarre | prof
    1 | Bass | semi

    Tabelle B (Auszug)
    ID | other | type | class
    -------------------------------
    1 | Vocals | AA1 | A
    1 | Vocals | A2A | B

    um dann mittels joins und Group_concat bei folgender Tabelle

    Tabelle C (Auszug)
    ID | Name | Vorname
    --------------------------
    1 | kols | Jürgen
    2 | Bars | Mike

    diese Ausgabe zu erzielen:

    Jürgen Kols
    Gitarre, Bass, Vocals

    Wäre für jeden Tip dankbar!
    Zuletzt geändert von Vestron; 07.10.2009, 18:18.

  • #2
    Hallo,

    das Problem sollte sich recht einfach lösen lassen. Benötigt werden JOIN, GROUP BY und group_concat, wie du schon sagtest.

    Wie man es nun konkret machen muss, lässt sich aber aus den spärlichen Informationen nicht ermitteln.

    Was stellt z. B. die Spalte mit dem irreführenden Namen ID dar?

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von AmicaNoctis Beitrag anzeigen
      Was stellt z. B. die Spalte mit dem irreführenden Namen ID dar?
      Vermutlich in den beiden erstengenannten Tabellen lediglich einen Fremdschlüssel - der auf den Primärschlüssel in der dritten verweist. (Warum er aus dieser nur einen Datensatz und nicht beide bekommen will, hat er noch verschwiegen.)
      In der Tat, Benennung ungünstig.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ist aber das falsche Forum, daher * verschieb *

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          @AmicaNoctis
          ist der Schlüssel der auf die id der dritten Tabelle verweist.

          @Wahsaga
          hab nur diesen als Bsp angegeben

          @Kropff
          ups, sorry!

          SELECT c.id,concat_ws(' ',vorname,name) AS name,a.id,GROUP_CONCAT (instr SEPARATOR ', ') AS instr FROM tab.c JOIN tab.a ON a.id=c.id WHERE c.id=".$_GET['id']."

          damit bekomme ich folgendes
          Jürgen Kols
          Gitarre, Bass

          d.h. ich weiß nicht wie ich hier die andere Tabelle B "addieren" soll, denke mal ein UNION greift nicht, da Tabellen A,B Unterschiede aufweisen.
          Zuletzt geändert von Vestron; 07.10.2009, 21:20.

          Kommentar


          • #6
            Code:
            select
            	*,
            	concat_ws(',', group_concat(distinct instr), group_concat(distinct other))
            from tabelle_c
            left join tabelle_b using(id)
            left join tabelle_a using(id)
            group by tabelle_c.id;
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              besten dank AmicaNoctis!

              Kommentar

              Lädt...
              X