我有 3 个表:'cards'、'tags' 和 'cardstags',其中卡片 HABTM 标记
问题:我在“标签”表上执行什么查询来计算关联的“卡片”行数?
我正在寻找这样的东西:
tags.name | count
----------+------
cricket | 15 (15 cards are tagged as 'cricket')
soccer | 23
football | 12
我有 3 个表:'cards'、'tags' 和 'cardstags',其中卡片 HABTM 标记
问题:我在“标签”表上执行什么查询来计算关联的“卡片”行数?
我正在寻找这样的东西:
tags.name | count
----------+------
cricket | 15 (15 cards are tagged as 'cricket')
soccer | 23
football | 12
select tags.name, count(*) from tags join cardstags
on tags.id=cardstags.tag_id group by tags.name
如果您只想要那些至少有一张卡的标签:
select tags.name, count(cardstags.tag_id) from tags inner join cardstags on tags.id=cardstags.tag_id group by tags.id;
要包含没有卡片的标签,请使用左连接而不是内连接。