Cof*_*fee 6 php mysql query-builder laravel
所以在我的数据库中我有一个表调用website_tags
,包含id, title
等等,而且我也有一个表调用websites
,具有相似的结构.还有一个名为table的表assigned_tags
,它包含标签和网站之间的关系,因此它包含关系id, tag_id and website_id
.
我需要的是将这些表与查询联系起来,我需要获取所有标记并计算这些标记的使用次数.因此,例如website_tags包含以下信息:
1: men
2: women
Run Code Online (Sandbox Code Playgroud)
分配的标签包含id:tag_id:website_id
1: 1: 1
2: 1: 2
3: 2: 2
Run Code Online (Sandbox Code Playgroud)
因此,我将在2个网站中使用"男人"标签,并在1中使用"女人"标签.我应该如何构建查询? 现在我有:
DB::table('website_tags')
->join('assigned_tags', 'website_tags.id', '=', 'assigned_tags.tag_id')
->select('website_tags.id as id', 'website_tags.title as title', DB::raw("count(assigned_tags.tag_id) as count"))-
>get();
Run Code Online (Sandbox Code Playgroud)
但这是错误的,此查询只计算assigned_tags中的行.
KuK*_*KeC 16
你必须定义groupBy
所以查询将知道如何计数它(就像在常规SQL中一样)
尝试这样的事情
DB::table('website_tags')
->join('assigned_tags', 'website_tags.id', '=', 'assigned_tags.tag_id')
->select('website_tags.id as id', 'website_tags.title as title', DB::raw("count(assigned_tags.tag_id) as count"))
->groupBy('website_tags.id')
->get();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13242 次 |
最近记录: |