我创建了 3 个 MySQL 表,其中最后一个的目的是使前两个表之间的 n:m 关系成为可能:EVENTevent_idevent_nameTAGtag_idtag_nameEVENT2TAGevent_idtag_id现在我很难用 PHP 创建一个 MySQL 查询,它会生成所有事件及其各自标签的列表,例如像这样:<div> <h1>My first event</h1> #show #expo #freefood</div> <div> <h1>Another, even better Event</h1> #show #tv #conference #freedrinks</div> <div> <h1>Lame event</h1> #expo #boring</div>我怎么做?
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
您只想加入吗?
select e.event_name, t.tag_name
from event e
inner join event2tag et on et.event_id = t.e.event_id
inner join tag t on t.tag_id = et.tag_id
order by e.event_id, t.tag_id
这为每个事件/标签元组提供一行及其关联的名称。您可以迭代应用程序中的结果来显示结果。
您可能还对每个事件生成一行感兴趣,并将所有标签聚合在以逗号分隔的字符串中:
select e.event_name, group_concat(t.tag_name order by t.tag_id) all_tags
from event e
inner join event2tag et on et.event_id = t.e.event_id
inner join tag t on t.tag_id = et.tag_id
group by e.event_id, e.event_name
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消