2009-04-16 6 views
2

Ich habe eine Tabelle. Ich möchte in dieser Tabelle nach doppelten Titeln suchen.
Läßt meine Daten sagen sind wie folgt:Suchen und Anzeigen von Duplikaten

title1, title2, title3, title1, TITEL4, title2, title9

Ich mag für meine Abfrage auf diese Tabelle und Ausgabe nur suchen, um die Duplikate. So würde die Ausgabe wie folgt aussehen:
title1
title1
title2
title2

Ich weiß, wie ich die Duplikate finden, aber es zeigt mir nur eines der Duplikate und nicht beide.

SELECT id, title, artist_id FROM sm019_songs GROUP BY title HAVING count(title) > 1 

Irgendwelche Ideen?

Antwort

2

Hier ist eine Möglichkeit, dies mit einer Unterabfrage zu tun. Es kann sinnvoll sein, die Unterabfrage zuerst in eine temporäre Tabelle zu laden. (Dies würde in SQL Server arbeiten, nicht sicher, was die genaue Syntax MySql wäre.)

select id, title, artist_id 
from sm019_songs 
where title in 
(
    SELECT title 
    FROM sm019_songs 
    GROUP BY title 
    HAVING count(title) > 1 
) 
0

das ist, was ich mit in mysql kam:

CREATE TEMPORARY TABLE u (title varchar(250))
TYPE=HEAP;
INSERT INTO u
SELECT title FROM t group by title having count(title) > 1;

SELECT t.title FROM u,t where u.title = t.title

0

Ich würde nur beitreten die Tabelle mit sich selbst:

SELECT S1.*, S2.* 
FROM songs S1, songs S2 
WHERE S1.title = S2.title 
    AND S1.id != S2.id 

----- N

Verwandte Themen