2010-11-22 17 views
15

これは私のクエリです。 2つのデータベースの2つのテーブルからIDのリストを選択します。クエリは正常に動作します。MySQL:2つ以上のオカレンスを持つ行を選択してください

select en.id, fp.blogid 
from french.blog_pics fp, french.blog_news fn, english.blog_news en 
where fp.blogid = fn.id 
and en.title_fr = fn.title 
and fp.title != '' 

私は、これは現在のクエリ結果

en.id fp.blogid 
--------------- 
    10  12 
    12  8 
    17  9 
    12  8 

だった場合、私はこれだけを表示するように照会したい、en.idは、例えばので

回以上発生した場所の行を表示したいです代わりに

en.id fp.blogid occurrences 
----------------------------- 
    12  8   2 

答えて

37
select en.id, fp.blogid, count(*) as occurrences 
from french.blog_pics fp, french.blog_news fn, english.blog_news en 
where fp.blogid = fn.id 
and en.title_fr = fn.title 
and fp.title != '' 
group by en.id 
having count(*) > 1 
+1

これは完全に機能します。驚くばかり! – HyderA

+4

素晴らしい、ちょうど私が約5年後に必要なもの!愛スタック! –

-5

複数を避けるためにDISTINCTを使用してください出現

+0

DISTINCTは少なくとも1つの結果を返します。私は、少なくとも2回出現しない限り、結果を望んでいません。 – HyderA

+0

ID(id)IDをsometableから選択します。ここでidentity> 1 –

+1

identity =値en.id – HyderA

関連する問題