查询以检索标签并按最流行的方式进行组织

时间:2017-05-20 13:02:28

标签: mysql laravel

我建立了一个博客。在我的博客上,我想获得我的标签,但我想通过更多使用来对它们进行排序。我有一个数据透视表,我根本不知道如何处理它。

我有一个表'tags',一个表'articles'和一个表'article_tag'。

enter image description here

您能告诉我如何使用QueryBuilder执行此类操作吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用JOIN,GROUP BY和COUNT:

$tags = Tags::join('article_tags as at', 'at.tag_id', '=', 'tags.id')
    ->groupBy('tags.id')
    ->selectRaw('tags.*, count(*) as article_count')
    ->orderBy('article_count', 'desc')
    ->get();