Suite de cette question , et en utilisant cette requête comme base pour l'exemple suivant, vous pouvez le faire avec ce qui suit :
SELECT
CONCAT(res_id,': ',res_name) 'Resources',
GROUP_CONCAT(distinct t_name order by t_id separator ',') 'Topics',
GROUP_CONCAT(distinct ch_name order by ch_id separator ',') 'Chapters'
FROM (SELECT res_id,
res_name,
t_id,
t_name,
ch_id,
CONCAT("<a href=\"page.asp?topic=",ch_name,"\" title=\"",ch_name,"\">",ch_name,"</a>") as ch_name
FROM resources r
JOIN topics_to_resource ttr ON ttr.tr_resid = r.res_id
JOIN topics t on t.t_id = ttr.tr_tid
JOIN topics_to_chapter ttc on ttc.tch_tid = t.t_id
JOIN chapters ch ON ch.ch_id = tch_chid) links
GROUP BY res_id
ORDER BY res_id, t_id, ch_id;
Fondamentalement, j'ai enveloppé les données source dans une (sous-)requête distincte, en créant les liens, puis en effectuant le GROUP_CONCAT
s en dehors de cela.
Cela produit :
<a href="page.asp?topic=CHAPTER #1" title="CHAPTER #1">CHAPTER #1</a>,
<a href="page.asp?topic=CHAPTER #2" title="CHAPTER #2">CHAPTER #2</a>,
<a href="page.asp?topic=CHAPTER #3" title="CHAPTER #3">CHAPTER #3</a>
Voir ce violon pour plus de détails