MySQL データベースには、国、町、町内のエリアがすべて「mailshot」テーブルに含まれています。内部結合を使用して、粒度の降順でセット全体を返したいと思います。実際には、ユーザーがドロップダウン リストを表示して、国、町、または町内のエリアを選択できるようにしたいと考えています。
データは次のようになります。
mailshot_id mailshot_parent mailshot_name mailshot_level 49 0 イングランド 0 56 0 スコットランド 0 140 49 ロンドン 1 149 49 ヨーク 1 191 56 グラスゴー 1 300 140 ウィンブルドン 2 310 140 ウェストミンスター 2 493 56 エディンバラ 1
そして、私はそれを次のように出力したい:
mailshot_id mailshot_parent mailshot_name mailshot_level 49 0 イングランド 0 149 49 ヨーク 1 140 49 ロンドン 1 300 140 ウィンブルドン 2 310 140 ウェストミンスター 2 56 0 スコットランド 0 191 56 グラスゴー 1 493 56 エディンバラ 1
私はこれでほとんどそれを手に入れました:
選択する p_idとしてp.mailshot_id、 p.mailshot_name を p_name として、 p_levelとしてp.mailshot_level、 p.mailshot_parent として p_parent、 c.mailshot_id を c_id として、 c.mailshot_parent として c_parent として、 c.mailshot_level c_levelとして、 c.mailshot_name を c_name として、 場合 p.mailshot_parent = 0 THENの場合 p.mailshot_id そうしないと p.mailshot_parent END AS calcOrder から メールショット p LEFT JOIN メールショット c ON p.mailshot_id = c.mailshot_parent ORDER BY calcOrder , p_id "
しかし、孫レコード (レベル 2) を子レコード (レベル 1) の近くにグループ化していません。「ケース」の部分が間違っているに違いないと思います。でもそれなら考えられない。
助言がありますか?前もって感謝します。