首页 / PHP / php-加入另一个包含标签的表
php-加入另一个包含标签的表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-加入另一个包含标签的表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1354字,纯文字阅读大概需要2分钟。
内容图文
我有一个名为“ posts”的表,结构如下:
post_id | post_body | post_posterid
我还有另一个表叫做“标签”:
tag_id | tag_name
第三个表存储两个表之间的关系(每个post_id将有多个tag_id作为单独的记录):
post_id | tag_id
这类似于我尝试创建的stackoverflow的标签.
但是我不知道如何在单个记录中连接表并为每个帖子连接标签.像这样:
post_id | post_body | post_postername | tag_id1 | tag_id2 | tag_id3 ..... tag_name1 | tag_name2 | tag_name3 ....
因此,当使用PDO从mysql获取数据时,我可以避免进一步查询以获取标签名称.
编辑
更多细节:
第一个表格(“帖子”)包含帖子ID(唯一ID),已发布消息和张贴者的ID(存储在表“海报”中的唯一张贴者ID).
第二个表“标签”包含具有唯一tag_id的可能标签(例如“ php”,“ vb.net”等,例如在stackoverflow中).
第三个表包含已发布消息和标签之间的关系.因此它包含post_id及其对应的tag_id.可能有多个标签分配给同一帖子.
我想要的是:查询时,我可以将“ posts”与“ posters”表合并以获取名称.但是我也想为每个帖子获取标签.
GROUP_CONCAT()是我的问题的答案.但是如何获取它作为tag_id-tag_name对,而不是一个字段中的所有tag_id和另一个字段中的所有tag_name.
例如:1-VB,5-PHP,19-SQL
我将在PHP中分离这对
我正在尝试与stackoverflow的标记系统相同.
解决方法:
关键字是GROUP_CONCAT
和查询就像
SELECT
posts.*,
GROUP_CONCAT(tags.tag_name) tags
FROM
posts
LEFT JOIN relation ON relation.post_id = posts.id
LEFT JOIN tags ON tags.tag_id = relation.tag_id
GROUP BY posts.id
希望这个帮助
内容总结
以上是互联网集市为您收集整理的php-加入另一个包含标签的表全部内容,希望文章能够帮你解决php-加入另一个包含标签的表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。