2009-04-16 6 views
2

私はテーブルを持っています。この表の中で重複するタイトルを検索したいのですが。
は、次のように私のデータがあるとしましょう:唯一の私のクエリは、このテーブルと出力を検索するために私が好きな重複を見つけて表示する

TITLE1、TITLE2、TITLE3、TITLE1、TITLE4、TITLE2、title9

重複します。だから、出力は次のようになります。
TITLE1
TITLE1
TITLE2
TITLE2

私は重複を見つけることができる方法を知っているが、それは私だけ重複していないの両方のいずれかを示します。

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

答えて

2

サブクエリを使用する方法の1つです。最初に一時テーブルにサブクエリをロードすると意味があります。 (これは、正確なMySQLの構文がどうなるかわからない、SQLサーバで動作します。)

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

これは私がMySQLで思い付いたものです:

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

私は参加したいが自身のテーブル:

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

----- N

関連する問題