2010-11-22 2 views
15

Вот мой вопрос. Он выбирает список идентификаторов из двух таблиц в двух базах данных. Запрос работает нормально.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

+4

Удивительный, именно то, что мне нужно было почти 5 лет спустя! Love Stack! –

-5

Использовать DISTINCT для избежания множественных

+0

DISTINCT возвращает не менее 1 результата. Я не хочу результата, если есть не менее двух случаев. – HyderA

+0

SELECT DISTICT (en.id) как идентификатор от sometable en, где identity> 1 –

+1

identity = значение en.id – HyderA

Смежные вопросы