Ilja: mysql5: Query

Beitrag lesen

moin,

Ja, genau das würde ich gerne erreichen.

SELECT t1.*
FROM tabelle t1
WHERE EXISTS (SELECT NULL
              FROM tabelle t2
              WHERE t2.spalte1 = t1.spalte1 -- ab hier korreliert die unterabfrage
              AND t2.spalte2 = t1.spalte2
              AND t2.spalte3 = t1.spalte3
              AND t2.id <> t1.id
             )
ORDER BY t1.spalte1, t1.spalte2, t1.spalte3
;

diese abfrage gibt dir alle datensätze aus, die in den spalten 1-3 doppelte werte haben. die abfrage kann länger dauern, je nachdem wieviele datensätze die tabelle enthält und ob indexe gesetzt sind.

Es sollen dann alle 3 Datensätze angezeigt werden.

SELECT t1.*
FROM tabelle t1
WHERE EXISTS (SELECT NULL
              FROM tabelle t2
              WHERE t2.spalte1 = t1.spalte1
              AND t2.spalte2 = t1.spalte2
              AND t2.spalte3 = t1.spalte3
              AND t2.spalte4 <> t1.spalte4 -- Spalte 4 pruefung
              AND t2.id <> t1.id
             )
ORDER BY t1.spalte1, t1.spalte2, t1.spalte3
;

hier hast du nun folgendes: falls es einen datensatz gibt, der die gleichen spalten 1-3 hat und in der spalte 4 einen anderen wert, dann anzeigen.

Ok. Dann werde ich versuchen, diesen Unterschied woanders zu erroieren.

du musst es dir nicht woanders anschauen, du kannst hier das archiv danach durchsuchen, stichwörter wären mysql GROUP BY, Vinzenz oder Ilja

Ilja