MySQL - 使用HABTM关系进行计数

时间:2009-12-20 04:47:28

标签: mysql has-and-belongs-to-many

我有3张桌子:'牌','标签'和'卡片标签',卡片HABTM标签

问题:我会在“代码”表上执行哪些查询来计算相关“卡片”行的数量?

我正在寻找类似的东西:

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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