perlfa: wie findet man die Duplikation in Datenbank

hallo zusammen,
kann jemand mir sagen, wie ich die gleichen Einträge in einer datenbank finden und ausgeben? z.b.
Spalte1 Spalte2
a       b
b       c
b       d
a       b
d       c
a       b
ich möchte die 3 "a b" ausfilten.
danke!

viele grüße!
perlfa

  1. Hello,

    kann jemand mir sagen, wie ich die gleichen Einträge in einer datenbank finden und ausgeben? z.b.
    Spalte1 Spalte2
    a       b
    b       c
    b       d
    a       b
    d       c
    a       b
    ich möchte die 3 "a b" ausfilten.

    Dazu sollten sie aber auch identifizierbar sein. Eine Spalte mit einem Primary Key wäre als ratsam.

    Wie würdest Du die gleichen Datensätze denn suchen, wenn sie in zwei Tabellen verteilt wären?

    Index Spalte1 Spalte2        Index Spalte1 Spalte2
      2     a       b   ----- >   102     a       b
      4     b       c              43     b       c
      3     b       d              33     b       d
     22     a       b              22     a       b
     12     d       c              42     c       c
     13     a       b              77     f       c

    select t1.s1, t1.s2, t2.s1, t2.s2
    from ....
    where

    Und wenn Du nun Tabelle 1 einfach zweimal einbindest, anstelkle von T1 und T2, dann nennt sich das Self-Join...

    Ein harzliches Glückauf

    Tom vom Berg

    http://bergpost.annerschbarrich.de
    .

    --
    Nur selber lernen macht schlau
  2. Hallo,

    kann jemand mir sagen, wie ich die gleichen Einträge in einer datenbank finden und ausgeben? z.b.
    Spalte1 Spalte2
    a       b
    b       c
    b       d
    a       b
    d       c
    a       b

    mit einer SELECT-Anweisung, der GROUP-BY-Klausel und filtern mit HAVING sowie COUNT.

    ich möchte die 3 "a b" ausfilten.

      
    SELECT                    -- Gib mir  
        COUNT(*) AS Anzahl,   -- die Anzahl des Auftreten, gebe der Spalte einen Namen  
        Spalte1,              -- den Wert aus Spalte 1  
        Spalte2,              -- den Wert aus Spalte 2  
    FROM                      -- aus  
        tabelle               -- der Tabelle  
    GROUP BY                  -- gruppiert nach den Spalten  
        Spalte1,              -- Spalte 1  
        Spalte2               -- und Spalte 2,  
    HAVING                    -- aber nur die Kombinationen aus Spalte 1 und 2,  
        COUNT(*) > 1          -- die mehrfach vorkommen  
    
    

    Dies sollte jedes relationale Datenbankmanagementsystem können, auch MySQL.

    Freundliche Grüße

    Vinzenz