我有两个mysql db表'标签'和'tags_used'。我添加了用于检查db结构的图像。目前使用laravel fluent查询构建器。 现在我要查询的是关系表中的行数,如下所示。请使用laravel流畅查询或纯SQL查询来帮助我。
id | name |times_used
------------
1 | tag1 | 3
------------
2 | tag2 | 1
------------
3 | tag3 | 5
------------
4 | tag4 | 1
------------
5 | tag5 | 0
------------
----------
答案 0 :(得分:2)
在表格之间使用LEFT JOIN
,并COUNT()
计算匹配数。
SELECT t.id, t.name, IFNULL(COUNT(u.id), 0) AS times_used
FROM tags AS t
LEFT JOIN tags_used AS u ON t.id = u.tags_id
GROUP BY t.id
请注意,您必须使用COUNT(u.id)
而不是COUNT(*)
,因此当没有匹配项时,您不会计算tags_used
列中包含空值的行。