我需要在php / mysql项目中显示故事详情和标签名称。
对于每个故事行,都有一个名为的标签:将标签id保存为数组的标签
表名:故事
表格提交:标记
提交的标签示例:
1 5 6 他们之间的空间
我有一个看起来像这样的标签表
表名: bt_tags
表格文件: tid,标记
现在问题:
当使用while循环来获取故事表中的所有字段时,页面使用1个查询来显示每个故事的详细信息但是为了显示标签的名称,我应该查询另一个表来查找名称,我们将id存储在故事表中
现在我用while循环显示标签名称,但我确定有更好的方法来减少页面查询
llowed改变数据库表中的任何内容
如何在不使用** for循环的情况下改进此脚本并显示标记名称?**
答案 0 :(得分:4)
听起来像加入可能会帮助你
select s.*,
b.tag,
b.slug
from story_table s
left join bt_tags b on b.tid in s.tags
dev.mysql.com
答案 1 :(得分:4)
SELECT stories.storyid,
stories.storyname,
group_concat( tags.tagname )
FROM stories, tags
WHERE CONCAT( ' ', stories.tags, ' ' ) LIKE CONCAT( '%', tags.tagid, '%' )
GROUP BY stories.storyid, stories.storyname