私は3つのテーブルを持つmysqlデータベースを持っていますが、fixturechannelsというテーブルと、satelliteという名前のテーブルがあります。MySQL - 1つのフィールドに複数の行を表示する(内部結合のあるテーブル)q
サテライトテーブルには、サテライトチャンネル(名前、国、チャンネルID)、サッカーフィクスチャー(matchid、hometeam、awayteam、competition ....)の情報が含まれています。fixturechannelsはmatchidとchannelidを含むテーブルです。それぞれサテライトとサッカーフィクスチャーテーブルからのキーでリンクされています)。以下は
テーブルの詳細、次のとおりです。
は、私は次のクエリ以下で使用し、それが働いていた、私は私がテーブルから必要な内容をエコーすることができました
"SELECT * FROM fixturechannels INNER JOIN footballfixtures ON fixturechannels.matchid=footballfixtures.matchid INNER JOIN satellite ON fixturechannels.channelid=satellite.channelid";
詳細をエコーするためのコードは次のとおりです。
<tbody><tr>
<th>Match ID</th>
<th>Home Team</th>
<th>Away Team</th>
<th>Competition</th>
<th>Date</th>
<th>Time</th>
<th>Channel ID</th>
<th>Channel Name</th>
</tr>
<?php foreach ($results as $res) { ?>
<tr>
<td><?php echo $res["matchid"]; ?></td>
<td><?php echo $res["hometeam"]; ?></td>
<td><?php echo $res["awayteam"]; ?></td>
<td><?php echo $res["competition"]; ?></td>
<td><?php echo $res["date"]; ?></td>
<td><?php echo $res["time"]; ?></td>
<td><?php echo $res["channelid"]; ?></td>
<td><?php echo $res["name"]; ?></td>
</tr>
私の問題は、試合の詳細が二回 同じ一致を示すとしてリストされている2つのチャネルがあるとして(画像を参照)
私の所望の出力がために、各試合の詳細を持っていることですが表示されていることですチャンネル名の列に表示される一致を示す複数のチャンネルの名前(複数行なし)
私はGROUP_CONCATを使用しようとしましたが、成功しませんでした。私は知っているのでGROUP_CONCATを試しましたMYSQLのフィールドごとに複数の値を持つことはお勧めしません。
多くの場合、支援や指導を提供できる方に感謝します。
あなたのquestioにテーブルをテキストとして投稿してください – e4c5
http://sqlfiddle.com/#!9/51662/1 –