首先,请不要对我持有蹩脚的数据库结构。我们都有必须处理且无法更改的事情,我继承了这些在应用程序中根深蒂固的表格。
考虑这两个表:
Personnel
+-----+-------+--------------+
| ID | Name | TECHNIQUE_ID |
+-----+-------+--------------+
| 134 | Bob | 1,2,4 |
+-----+-------+--------------+
| 135 | Mary | 1,3,4 |
+-----+-------+--------------+
| 136 | Frank | 2 |
+-----+-------+--------------+
Techniques
+-----+----------+
| ID | Name |
+-----+----------+
| 1 | Fishing |
+-----+----------+
| 2 | Archery |
+-----+----------+
| 3 | Bowling |
+-----+----------+
| 4 | Hiking |
+-----+----------+
我需要的是每个人的列表以及他们执行的技术的逗号分隔列表。基本上将“1,3,4”变成“钓鱼、保龄球、徒步”。
我可以通过嵌套查询在 CF 代码中执行此操作,但报告有数千行......这意味着它可能仅针对一份报告运行数万个查询。我宁愿在一个查询中完成所有操作。