2010-11-22 154 views
15

這是我的查詢。它從兩個數據庫中的兩個表中選擇一個id列表。查詢工作正常。MySQL:選擇出現多次的行

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發生不止一次

因此,舉例來說,如果這是當前的查詢結果

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

我只想查詢,以顯示這而不是

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 2010-11-22 07:17:09

+4

真棒,正是我近5年後所需要的!愛堆棧! – 2015-09-25 10:47:53

-5

使用DISTINCT避免多重出現

+0

DISTINCT返回至少1個結果。除非至少有兩次出現,否則我不想要結果。 – HyderA 2010-11-22 07:01:31

+0

SELECT DISTICT(en.id)作爲來自sometable的身份身份> 1 – 2010-11-22 07:04:51

+1

identity = en.id的值 – HyderA 2010-11-22 07:22:09