2012-04-02 87 views
1

我有名为news和tags_news的表。鉴于新闻编号,我必须根据标签输出相关文章。所以我有一个像谷歌的标签列表,脸谱,我使用下面的查询where子句mysql按相关性排序

select 
    t2.title, 
    t2.content, 
    t2.id 
from 
    tags_news as t1 
    left join news as t2 on t2.id=t1.news 
where t1.tag in ('facebook','google'); 

一切工作正常,但文章在其ID的顺序返回。我想要有与给定标签有更多匹配的文章。

+0

这是为什么downvote – 2012-04-02 02:14:45

回答

1

我希望我能理解你的问题。

尝试以下操作:

select 
t2.title, 
t2.content, 
t2.id, 
count(*) as numberOfTagsRelatedToTheNews 
from 
tags_news as t1 
left join news as t2 on t2.id=t1.news 
where t1.tag in ('facebook','google') 
group by t2.title 
order by numberOfTagsRelatedToTheNews desc 

这是你在找什么?询问,如果您对此答案有任何疑问。