首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过拥有最具体的关系来获得雄辩有序的行?

问如何通过拥有最具体的关系来获得雄辩有序的行?
EN

Stack Overflow用户
提问于 2019-01-07 15:54:50
回答 1查看 68关注 0票数 0

我在Laravel5.1中有一个项目,它有三个表:文章、标签和一个枢轴表来保存多到多的关系: article_tag表。

我需要得到所有的文章相关的标签到一个特定的文章,分配一个主要的数字或相关的文章,有大量的巧合通过标签。因此,首先是那些“更相关的”。例如,如果我需要所有带有tag_id #1和#2的文章,如果A条有两个标记,但是B条只有一个巧合,我希望这两篇文章都按顺序排列: A,B。

我想我可以用mysql语句来做这件事:

代码语言:javascript
复制
SELECT articles.*, count(*) as tags_count 
FROM article_tag, articles 
WHERE tag_id in (1,2) 
AND articles.id = article_tag.article_id 
GROUP BY article_id 
ORDER BY tags_count DESC

但我想用雄辩。我怎么才能接近它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-07 15:59:33

假设原始sql查询是您需要的查询,这样的查询应该可以工作:

代码语言:javascript
复制
$articles = Article::select(DB::raw('articles.*'), DB::raw('count(*) as tags_count'))
    ->join('article_tag', 'article_tag.article_id', '=', 'articles.id')
    ->whereIn('tag_id', [1, 2])
    ->groupBy('article_id')
    ->orderBy('tags_count', 'desc')
    ->get();

您需要在使用此代码的模型/控制器中使用use DB;,或者可以使用\DB::raw(..)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54077635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档