这里有3个表,结构如下:
:
post_id | Post_name
---------+----------
1,,,,,,,,|,,测试发布
2,,,,,,,,|,,,印度
标记:
tag_id | tag_name
---------+------------
1,,,,,,,,|,,,java
2,,,,,,,,|,,,php
Tag_map:
tag_map只包含post和tag表中的外键。
post_id | tag_id
-----------+------------
1,,,,,,,,,,|,,,,1
1,,,,,,,,,,|,,,,2
2,,,,,,,,,,|,,,,1
2,,,,,,,,,,|,,,,2
我想从用户给出的特定post_id中获取数据。
有谁能帮我一下吗?我是php的初学者。提前感谢。
您需要像下面这样连接数据,当文章在tag_map
select
p.post_id ,
p.Post_name,
t.tag_name
from tag_map tm
join Post p on p.post_id = tm.post_id
join Tag t on t.tag_id = tm.tag_id
where p.post_id = 'some id';
为了在每篇文章中获得单行数据,并且所有标签都以逗号分隔,您需要使用group_concat()
作为
select
p.post_id ,
p.Post_name,
group_concat(t.tag_name) as tag_name
from tag_map tm
join Post p on p.post_id = tm.post_id
join Tag t on t.tag_id = tm.tag_id
where p.post_id = 'some id'
group by p.post_id
;