ネストされたセット モデル クラスを使用してデータを整理するアプリケーションがありますが、結果を group_concat するクエリを作成しようとしています。サブセレクトステートメントをどこかに置く必要があることはわかっていますが、それがわかりません!
現時点での私の構造は次のとおりです。
表:人
-----------+------------+-----------
|Person_ID | Name | Age |
-----------+------------+-----------
| 1 | Mark Vance | 19 |
| 2 | Michael Tsu| 22 |
| 3 | Mark Jones | 29 |
| 4 | Sara Young | 25 |
-----------+------------+-----------
テーブル: person_to_group
----+------------+-----------
|ID | Person_ID | Group_ID |
----+------------+-----------
| 1 | 3 | 1 |
| 2 | 3 | 2 |
| 3 | 1 | 2 |
| 4 | 4 | 3 |
----+------------+-----------
表: グループ
----------+--------------+--------------+-------------
|Group_ID | Group_Name | Group_Left | Group_Right |
----------+--------------+--------------+-------------
| 1 | Root | 1 | 6 |
| 2 | Node | 2 | 5 |
| 3 | Sub Node | 3 | 4 |
----------+--------------+--------------+-------------
結果を次のようにレンダリングする必要があります。
// この人物の group_ID を取得し、class タグに入れます...
<li class="2 3">Sara Young is in the Sub Node Group</li>
Sara は Sub Node グループに属していますが、彼女は Node の子であるため、Node の ID も与えられていることに注意してください。
以下は、私が出発点として取り組んでいるクエリです。
SELECT *, GROUP_CONCAT( CAST( gg.Group_ID AS CHAR ) SEPARATOR ' ' ) Group_IDs
FROM groups gg
LEFT JOIN person_to_group AS t1 ON gg.Group_ID = t1.Group_ID
LEFT JOIN person AS t2 ON t2.Person_ID = t1.Person_ID
GROUP BY t2.per_ID
ORDER BY t2.Name ASC
どんな助けでも大歓迎です!