0

我有 3 个表:'cards'、'tags' 和 'cardstags',其中卡片 HABTM 标记

问题:我在“标签”表上执行什么查询来计算关联的“卡片”行数?

我正在寻找这样的东西:

tags.name | count
----------+------
cricket   |  15          (15 cards are tagged as 'cricket')
soccer    |  23
football  |  12
4

2 回答 2

0
select tags.name, count(*) from tags join cardstags 
 on tags.id=cardstags.tag_id group by tags.name
于 2009-12-20T04:50:09.580 回答
0

如果您只想要那些至少有一张卡的标签:

select tags.name, count(cardstags.tag_id) from tags inner join cardstags on tags.id=cardstags.tag_id group by tags.id;

要包含没有卡片的标签,请使用左连接而不是内连接。

于 2009-12-20T06:20:00.330 回答