这里我有3个表格,结构如下。
发表:
post_id | Post_name
--------- ---------- +
1 |测试岗位
2 |印度
标签:
tag_id | TAG_NAME
--------- ------------ +
1 | java的
2 | PHP
Tag_map:
tag_map仅包含来自帖子和标签表的外键。
post_id | TAG_ID
----------- ------------ +
1 | 1
1 | 2
2 | 1
2 | 2个
我想从用户提供的特定post_id中获取数据。
任何人都可以帮我吗???我是一个非常初衷的PHP ..
提前致谢。
答案 0 :(得分:0)
您需要按以下方式加入数据,当帖子在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
;