3 つの MySQL テーブルを作成しました。最後のテーブルの目的は、最初の 2 つのテーブル間の n:m の関係を可能にすることです。
EVENT
event_id
event_name
TAG
tag_id
tag_name
EVENT2TAG
event_id
tag_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>
どうすればよいでしょうか?
すでに試したコードを見せてください
– アントン
2020 年 9 月 4 日 21:21
------------------------
結合したいだけですか?
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
これにより、イベント/タグタプルごとに 1 行と、それらに関連付けられた名前が得られます。アプリケーション内で結果を反復処理して、結果を表示できます。
すべてのタグをカンマ区切りの文字列に集約して、イベントごとに 1 行を生成することにも興味があるかもしれません。
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