我已经加入多个表与INNER JOIN,并得到它类似于这样的输出:显示类别结果
SPORT COUNTRY LEAGUE MATCH
SPORT COUNTRY LEAGUE MATCH
SPORT COUNTRY LEAGUE MATCH
我想SPORT要显示只在第一次它在查询中发现的。与COUNTRY和LEAGUE一样,所以它们作为比赛的头部。就像这样:
SPORT
COUNTRY
LEAGUE1
MATCH
MATCH
MATCH
LEAGUE2
MATCH
MATCH
MATCH
代码:
if ($db_found) {
$SQL ="
select sportname,
tournament_templatename,
tournament_stagename,
GROUP_CONCAT(eventname) as event_name
from ('SELECT
event.id AS eventid,
event.name AS eventname,
event.tournament_stageFK AS eventtournamentstageFK,
event.startdate AS eventstartdate,
tournament_stage.id AS tournament_stageid,
tournament_stage.name AS tournament_stagename,
tournament_stage.tournamentFK AS tournament_stagetournamentFK,
tournament.id AS tournamentid,
tournament.name AS tournamentname,
tournament.tournament_templateFK AS tournamenttournament_templateFK,
tournament_template.id AS tournamenttemplateid,
tournament_template.name AS tournament_templatename,
tournament_template.sportFK AS tournament_templatesportFK,
sport.id AS sportid,
sport.name AS sportname
FROM event
INNER JOIN tournament_stage
ON event.tournament_stageFK=tournament_stage.id
INNER JOIN tournament
ON tournament_stage.tournamentFK=tournament.id
INNER JOIN tournament_template
ON tournament.tournament_templateFK=tournament_template.id
INNER JOIN sport
ON tournament_template.sportFK=sport.id
WHERE
DATE(event.startdate) = CURRENT_DATE()
ORDER BY
sport.id ASC, tournament_template.name ASC, event.startdate ASC'
)
GROUP BY
sportname, tournament_templatename, tournament_stagename
ORDER BY
sportname, tournament_templatename, tournament_stagename";
$result = mysql_query($SQL);
echo "<table border='1' style='border-collapse: collapse;border-color: white;
font-size:8px; background-color: #c8ccce; width:100%;'>";
while($db_field=mysql_fetch_assoc($result)){
echo "<tr>" , "<td>" , $db_field['sportname'] , "</td> " , "<td>" ,
$db_field['tournament_templatename'] , "</td>" , "<td>" ,
$db_field['tournament_stagename'] , "</td>" , "<td>" , $db_field['eventstartdate'] ,
"</td>" , "<td>" , $db_field['eventname'] , "</td>" , "</tr>";
}
echo "</table>";
mysql_close($db_handle);
}
感谢您的帮助了PHP新手。
请league1,league2更新您的输入表。并指定RDMS:(MySQL,Oracle等)。和你的查询产生的结果。 – 2011-12-29 17:43:50
我不知道查询中的哪些列对应的4列(运动,国家,联盟,比赛)。 – 2011-12-29 18:30:03
sport is sport.name,国家是tournament_template.name,联赛是tournament_stage.name,比赛是event.name。这是你问的吗? – 2011-12-29 18:51:33