Komplizierte Abfrage

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

  • Komplizierte Abfrage

    Guten Tag
    Ich habe ein Problem bzw. fehlen mir die Ansätze um folgendes Problem zu lösen:

    Die folgenden Tabellen habe ich:
    TBenutzer
    ID | Name

    TAbfrage
    IDAbfrage | Frage

    TAbfrageWert
    IDBenutzer | IDAbfrage | Wert

    Ich stelle Benutzern regelmäßig Fragen auf die ich Antworten von Ihnen benötige. Die packe ich dann in eine Tabelle.
    Bisher habe ich das immer in Excel dargestellt - möchte jetzt das aber online bringen. Deshalb hab ich die Tab. TAbfrage & TAbfrageWert neu angelegt. TBenutzer wird so verwendet.

    Ich möchte die folgende Darstellung erreichen, wobei die Tabelle nach rechts offen seien muss, da n Fragen erlaubt sind; die erste Spalte sind die Benutzer. (Siehe auch Anlage)
    Es müssen übrigens immer ALLE Benutzer zu einer Frage eine Antwort abgeben - es kann höchstens sein, dass ich einen Wert noch nicht habe. Irgendwann kommt er aber.

    Benutzer | Frage 1 | Frage 2 | Frage 3 | usw.
    1 | 32 | 1 | 23 | usw
    2 | 42 | - | 33 | usw
    3 | 12 | 5 | 55 | usw
    ....

    Ich habe es mit äußerst wirren Abfragen schon annähernd erreicht, allerdings stosse ich immer wieder auf schwere Bugs, da die Darstellung durcheinander gehauen wird.
    Wie würdet Ihr daran gehen??? Evtl. ist ja auch die Tabellenstruktur nicht optimal... Ein Lösungsansatz bzw. mal eine Abfrageidee wäre super!

    Danke!
    Angehängte Dateien

  • #2
    Ein einfacher JOIN USING IDAbfrage liefert dir das:
    Code:
    Frage      Benutzer      Wert
       1           1          0
       1           2          1
       1           3          1
       2           1          1
       2           2          0
       2           3          1
       3           2          1
    Diese Tabelle ist sozusagen "nach unten offen". Wenn du es unbedingt nach rechts offen haben willst, mußt du es bei der Ausgabe
    transponieren.

    Kommentar


    • #3
      OK. Ein Join liefert mir eine nach "unten" offene Sache....

      PHP-Code:
      SELECT FROM TAbfrageWert pro
      inner join
      TAbfrage ref
      on ref
      .IDAbfrage=pro.IDAbfrage 
      Ich verstehe nur nicht, was Du mit
      du es bei der Ausgabe transponieren
      meinst. Das kriege ich noch nicht hin.

      Ich möchte ja die Ausgabe so haben:
      Benutzer | Frage 1 | Frage 2 | usw.
      Benutzer A | Wert1 | Wert2
      Benutzer B | Wert1| Wert2

      Momentan krieg ich diese:
      Benutzer A | Wert1
      Benutzer B | Wert1
      Benutzer A | Wert2
      Benutzer B | Wert2
      ...

      Wie gehe ich da vor? Wie kann ich die Abfrage manipulieren!??? Besten Dank!

      Kommentar


      • #4
        Keiner eine Idee?

        Kommentar


        • #5
          GROUP BY und GROUP_CONCAT

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar

          Lädt...
          X