从数据库中的tag-post表中检索标记名称

时间:2015-01-28 02:01:38

标签: mysql database database-performance

首先,我想知道哪个是我数据库中标签和类别的最佳实现。所以我在other question中找到了最好的方法:

Table: Item
Columns: ItemID, Title, Content

Table: Tag
Columns: TagID, Title

Table: ItemTag
Columns: ItemID, TagID

现在我想知道如何从数据库中获得最佳性能信息。所以,让我说我做了一个选择,现在我有一堆“ItemID”,并想知道这些元素有哪些标签。那么您如何构建这样的算法如下:

For each ItemID
   Do whatever I wanna do first
   SELECT Tag ID from table ItemTag Where ItemID
   For each unique TagID 
      SELECT Title from table Tag Where TagID
      Print on screen tag name

你认为这是一个很好的解决方案吗?还有另外一个简单但有更好的表现方式吗?

1 个答案:

答案 0 :(得分:0)

您可以使用joingroup_concat()

select itemId, group_concat(t.title)
from ItemTag it join
     tag t
     on it.TagId = t.TagId
group by itemId;

如果您只想为特定项目添加标签,可以添加where子句。