Given a SCHEMA for implementing tags
ITEM ItemId, ItemContent
TAG TagId, TagName
ITEM_TAG ItemId, TagId
What is the best way to limit the number
My second solution uses a MySQL function GROUP_CONCAT() to combine all tags matching the item into a comma-separated string in the result set.
SELECT i.ItemContent, GROUP_CONCAT(t.TagName ORDER BY t.TagName) AS TagList
FROM item AS i
INNER JOIN ItemTag AS it ON i.id = it.ItemId
INNER JOIN tag AS t ON t.id = it.TagId
GROUP BY i.ItemId;
The GROUP_CONCAT() function is a MySQL feature, it's not part of standard SQL.