Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Doppelte Einträge herausfinden

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Doppelte Einträge herausfinden

    Ich habe eine Tabelle mit drei Spalten: trackid, information und level.

    Ein foreign_key darf mehrmals vorkommen. Es darf aber niemals ein foreign_key mit gleichem Level eintragen.

    Ich achte jetzt beim eintragen darauf, dass so etwas schon vorher abgefangen wird und eine Fehlermeldung ausgegeben wird, dass es zu dem foreign_key bereits einen Eintrag mit gleichem Level gibt.

    Aber: Es sind jetzt leider schon doppelte Einträge vorhanden. Ich würde jetzt gerne die Einträge anzeigen lassen die es doppelt gibt.

    Mit

    Code:
    SELECT `trackid` FROM `signatures` GROUP BY `trackid`
    kann ich mir zwar alle unterschiedlichen trackids ausgeben lassen, aber wie muss ich die Zeile "level" berücksichtigen, damit wirklich nur Einträge angezeigt werden, bei denen trackid und level gleich sind.


  • #2
    HAVING ist die WHERE-Bedingung für gruppierte Elemente. Probier mal:
    GROUP BY trackid, level HAVING COUNT(*) > 1
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Sehr gut.

      Code:
      SELECT trackid, level, information FROM signatures GROUP BY trackid, level HAVING COUNT(*) > 1
      Das zeigt mir aber jetzt nur die trackids an, die doppelt ist. Kann man auch beide Einträge sehen, um dann zu entschieden welchen von beiden ich löschen kann/muss?

      Kommentar


      • #4
        Ja, in etwa so:
        Code:
        SELECT * FROM (SELECT trackid, level, information FROM signatures GROUP BY trackid, level HAVING COUNT(*) > 1) AS duplicates
        LEFT JOIN signatures AS original ON 
        original.trackid = duplicates.trackid AND
        original.level = duplicates.level
        "Mein Name ist Lohse, ich kaufe hier ein."

        Kommentar


        • #5
          Funktioniert nicht, aber ich werde selber mal versuchen zu probieren warum.

          Kommentar


          • #6
            Hilft dir nicht direkt aber ich habe auch sowas das 2 Spalten nur eindeutig sein müssen..

            Man kann hier einen Index erzeugen, der es verbietet doppelte Kombinationen anzulegen.. also quasi das Problem *künftig* gleich bei der Wurzel zu packen..

            Code:
            CREATE....
            UNIQUE INDEX 'NameDesIndex' (`Nickname`, `SpielIDRef`)
            Bei mir hier ist es so das jeder User jedes Spiel genau 1x tippen darf..

            LG
            Juergen
            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar

            Lädt...
            X