2010-11-22 34 views
15

Đây là truy vấn của tôi. Nó chọn danh sách các id từ hai bảng trên hai cơ sở dữ liệu. Truy vấn hoạt động tốt.MySQL: Chọn các hàng có nhiều lần xuất hiện

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 != '' 

Tôi chỉ muốn hiển thị hàng nơi một en.id xảy ra nhiều hơn một lần

Vì vậy, ví dụ, nếu điều này là kết quả truy vấn hiện

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

Tôi chỉ muốn truy vấn để hiển thị này thay vào đó

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

Trả lời

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

Điều đó hoạt động hoàn hảo. Tuyệt vời! – HyderA

+4

Tuyệt vời, chỉ là những gì tôi cần gần 5 năm sau đó! Tình yêu ngăn xếp! –

-5

Sử dụng DISTINCT để tránh nhiều occurance

+0

DISTINCT trả về ít nhất 1 kết quả. Tôi không muốn kết quả trừ khi có ít nhất 2 lần xuất hiện. – HyderA

+0

CHỌN DISTICT (en.id) dưới dạng nhận dạng từ đôi khi en trong đó danh tính> 1 –

+1

identity = value of en.id – HyderA

Các vấn đề liên quan