我有一个使用嵌套集模型类来组织我的数据的应用程序,但是我正在尝试编写一个查询来 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 并将它们放在类标签中...
<li class="2 3">Sara Young is in the Sub Node Group</li>
请注意,尽管 Sara 在 Sub Node 组中,但她仍然被赋予 Node 的 id,因为她是 Node 的孩子。
以下是我作为起点使用的查询。
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
任何帮助将非常感激!