sql >> データベース >  >> RDS >> Mysql

mySQL>>個別のGROUP_CONCATへのHREFリンクの追加

    この質問 、そして次の例の基礎としてそのクエリを使用すると、次のようにこれを行うことができます:

    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;
    

    基本的に、ソースデータを別の(サブ)クエリでラップし、リンクを作成してから、GROUP_CONCATを実行しました。 sこれ以外。

    これにより、次のようになります。

    <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>
    

    このフィドル を参照してください。 詳細については




    1. MYSQL自己結合はどのように機能しますか?

    2. mysqlで生成された列としてのサブクエリ?

    3. CASEを使用してSQLリクエストを実行する方法

    4. Where句に応じてSQLServerクエリがタイムアウトする