Wiederholung eines Wertes verhindern

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

  • Wiederholung eines Wertes verhindern

    Also ich möchte folgendes machen:

    Eine Liste der höchsten Einträge aller User, vom höchsten zum niedrigsten sortiert - nur in der Tabelle stehen mehrere Werte eines Users und jeder soll nur einmal in der Liste vorkommen.

    >> SELECT userid,wert FROM table ORDER BY wert DESC <<

    So habe ich es jetzt - nun müsste ich verhindern, dass wenn ein Wert für eine userid genommen wurde, keine weiteren Werte mehr für diese userid selectiert werden - oder könnte ich dass nur mit einem php script möglich (wenn ja - wie) ???


    Danke schon mal für eure Hilfe...
    Kaffi
    Errare humanum est

    W32.Schmalle.H@mm

  • #2
    also momentan mache ich es jetzt so im php-script in der while-schleife :


    if (!$wdh[$userid])
    {
    $wdh[$userid] = $userid;
    ...
    }

    finde das aber etwas unschön...
    Kaffi
    Errare humanum est

    W32.Schmalle.H@mm

    Kommentar


    • #3
      Ich glaube, so gehts..
      Code:
      SELECT DISTINCT userid,wert FROM table ORDER BY wert DESC
      [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
      [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
      [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

      © Harald Schmidt

      Kommentar


      • #4
        DISTINCT habe ich garnicht in meiner Befehlsliste - sieh an...

        Ich werde es gleich mal ausprobieren - Vielen Dank schon mal für deine Antwort!
        Kaffi
        Errare humanum est

        W32.Schmalle.H@mm

        Kommentar


        • #5
          Leider geht es so nicht
          Kaffi
          Errare humanum est

          W32.Schmalle.H@mm

          Kommentar


          • #6
            hmm,

            Haste das mal mittels GROUP BY probiert ?
            PHP-Code:
            SELECT userid FROM tab GROUP BY userid ORDER BY wasweissich DESC 

            Kommentar


            • #7
              Ein paar Fragen..
              1. Jedem User soll nur ein wert zugewiesen werden ?
              2. Und das soll der erste wert in der Tabelle sein ? (Denk daran dass die NICHT sotiert sind..deswegen gibt es ja ORDER BY)

              Gib mal bitte ein paar Beispiele an..
              allerdings mit einem SQL Befehl wird es nicht gehen..ohne verschachtelte Anfragen kommt man nicht weit.

              SELECT DISTINCT userid,wert FROM table ORDER BY wert DESC
              Das DISTINCT bezieht sich hier auf das paar aus userid und wert..jedes paar! wird nur einmal ausgegeben.

              PS.: Ein paar Anfragen die nützlich sein könnten..

              SELECT DISTINCT userid FROM table
              Liefert eine Liste aller UserID (unique)

              PPS.: Versuch mal erst alle UserIDs DISTINCT zu selecten..
              dann in einer Schleifen dafür alle Wert ORDER BY zu selectieren und vom ergebnis nur das erste zu nehmen (also keine Ergebnisschleife)
              Ist zwar sehr ineffektiv aber könnte klappen..
              ..ansonsten könnte ich heute abend auch Code posten.

              Kommentar


              • #8
                SELECT userid, max(wert) FROM table GROUP BY userid ORDER BY wert DESC
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  Original geschrieben von Titus
                  SELECT userid, max(wert) FROM table GROUP BY userid ORDER BY wert DESC
                  Ordnet die Anfragen nicht jeder UserID den maximalen Wert zu ?

                  Kommentar


                  • #10
                    Hm, danke Leute, es will nichts wie ich es will, daher habe ich es jetzt über das Script geregelt...
                    Kaffi
                    Errare humanum est

                    W32.Schmalle.H@mm

                    Kommentar


                    • #11
                      Also das SQL von Titus is doch genau das was Du brauchst. Wenn das net klappt hast Du irgendein anderes problem...
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar

                      Lädt...
                      X