Announcement

Collapse
No announcement yet.

Join erstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Join erstellen

    Gute Tag alle zusammen,

    für JOINS bin ich einfach zu blöd, selbst nach etlichem nachlesen bekomme ich es nicht hin. Vielleicht kann jemand von euch 3 Minuten investieren und mir den Join mal vormachen, dann finde ich vielleicht meinen Fehler.

    Ich habe eine Tabelle mit den Spalten: user-id, field-id, value

    Field-ID steht für ein Eingabefeld (in diesem Beispiel Gewicht(ID17) und Grösse(ID18)), die anderen Felder sind selbsterklärend.
    Ein Benutzer steht also in diesem Beispiel 2 mal in der Tabelle nur unterschieden durch die Feld-ID.

    Ich möchte nun eine Abfrage erstellen in der ich als Ergebnis die Benutzer-ID, das Gewichtsfeld und das Grössenfeld erhalte..

    Ich weiß bestimmt ganz simpel, aber es würde mir helfen.
    Danke!

    lg izak

  • #2
    ungefähr so
    [HIGHLIGHT="SQL"]SELECT T1."user-id", T2.value AS Gewicht, T3.Value AS Groesse
    FROM Tabelle AS T1
    JOIN Tabelle AS T2 ON T1."user-id" = T2."User-ID"
    AND T2."Field-id"= 'ID18'
    JOIN Tabelle AS T3 ON T1."user-id" = T3."User-ID"
    AND T3."Field-id"= 'ID19'[/HIGHLIGHT]

    Comment


    • #3
      Hallo,
      Originally posted by ebis View Post
      ungefähr so...
      Naja, vlt. noch ein DISTINCT, sonst steht jeder User doppelt in der Liste. Und der Vollständigkeit halber sollte man anmerken, dass ein Nutzer komplett rausfällt, sobald es entweder kein ID18 oder kein ID19 Feld für ihn gibt. Sollen hier "Gewicht" und "Grösse" einfach nur leer bleiben, wäre jeweils ein LEFT JOIN zu verwenden.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Hallo!
        Erstmal danke für die Antworten. Leider klappt es nicht ganz. Wenn ich diese Anfrage ausführe erhalte ich soviele Ergebnisse wie ich Benutzer habe (von daher schonmal richtig) aber jedes Ergebnis ist der gleiche Benutzer (mit seinen Daten).

        Ich poste mal meinen Query:
        Code:
        SELECT
                       t1.user_id,
                       t2.value AS gewicht,
                       t3.value AS groesse
                 FROM
                     #__cbe_fields_values AS t1
                     JOIN #__cbe_fields_values AS t2 ON t1.user_id = t2.user_id
                          AND t2.field_id='".$field_id_gewicht."'
                     JOIN #__cbe_fields_values AS t3 ON t1.user_id = t3.user_id
                          AND t3.field_id='".$field_id_groesse."'
                    ";
        Hinweise:
        #__cbe_fields_values = #__ wird hier vom JoomlaFramework durch einen passenden Präfix ersetzt
        $field_id_groesse und $field_id_gewicht sind jeweils Variablen in denen die IDs stehen.

        LG izak

        Comment


        • #5
          Hallo,

          was ist mit meinen Anmerkungen!? Und für weitere Hilfen wäre es notwendig, du würdest mal ein paar Daten posten und wie denn ein gewünschtes Ergebnis (mit diesen Daten) aussehen soll. Ansonsten wird das hier Stochern im Nebel!

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Guten Morgen,

            gerade habe ich einen Roman hier verfasst und da ist mir der Fehler aufgefallen... In der Testtabelle gab es nur einen Benutzer der auch Feld 18 angegeben hat.

            Nun mit mehr Benutzern und der DISTINCT-ANGABE ist alles gut!

            Vielen Dank für eure Hilfe!

            LG izak

            PS: Die Grafiken bekomme ich leider nicht gelöscht..sind aber nun unnütz..
            Attached Files

            Comment

            Working...
            X