Olli: MySQL-Abfrage mit JOIN

Huhu Forum,

bräuchte eure Hilfe bei einer SQL-Abfrage. Vielleicht stelle ich mir das Ganze ja zu einfach vor, aber ich denke das müsste mit einem oder mehreren JOINS gehen.

Folgende Tabellen habe ich:
umfragen / id - name (hier sind Umfragen gespeichert)
umfragen_fragen / umfrage_id - frage_typ - frage_id - frage_position (jede Umfrage besteht aus Fragen verschiedenen Typs. Diese Tabelle enthält nur Kreuzverweise und verknüpft die Tabelle „umfragen“ mit den eigentlichen Fragen.)
umfragen_frage_typ1 / id - frage
umfragen_frage_typ2 / id - frage
umfragen_frage_typ3 / id - frage (unterschiedliche Fragetypen – z.B. Antwort ist Text oder Punktebewertung)

Was ich nun gerne hätte ist eine Ergebnismenge in der alle Fragen einer Umfrage enthalten sind.

Also z.B.:
Position (aus umfragen_fragen), Frage (aus umfragen_frage_typ1 oder 2 oder 3), Typ (wie Frage)
2, „Wie …“, 1
1, „Weshalb …“, 1
4, „Wieso …“, 3
3, „Warum …“, 2

Ich muss also mit JOINS die Tabellen umfragen_fragen und umfragen_frage_typ1, umfragen_frage_typ2 und umfragen_frage_typ3 zusammenfassen. Komme aber auf keinen grünen Zweig. Die einzige Bedingung die hinein muss ist: WHERE umfragen_fragen.umfrage_id = 'irgendeine id'

Falls ich die Tabellen falsch oder nicht optimal normalisiert habe, wäre ich froh über einen Hinweis wie ich das Ganze besser lösen könnte.

Danke schon Mal

Olli

  1. Hi,

    Huhu Forum,

    ich möchte lösen: Eule.

    Ich muss also mit JOINS die Tabellen umfragen_fragen und umfragen_frage_typ1, umfragen_frage_typ2 und umfragen_frage_typ3 zusammenfassen. Komme aber auf keinen grünen Zweig.

    Welche Farbe hat der Zweig statt dessen, und wie ist er beschaffen?

    Falls ich die Tabellen falsch oder nicht optimal normalisiert habe, wäre ich froh über einen Hinweis wie ich das Ganze besser lösen könnte.

    Deine drei (zudem durchnummerierten) Tabellen umfragen_frage_typX haben die selbe Struktur. Das lässt darauf schließen, dass Du die Schizophrenie einer einzelnen Tabelle psychologisch recht unsensibel behandelt hast. Ganz offensichtlich willst Du den Typ als Spalte einer Tabelle umfragen_frage speichern.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes