我的任务是根据设计非常糟糕的表结构创建报告。
考虑以下两个表。它们包含每个人喜欢在每个健身房执行的技术。请记住,一个唯一的人可能会出现在 PERSONNEL 表的多行中:
PERSONNEL
+-----+-----+-------+--------+-----------+
| ID | PID | Name | Gym | Technique |
+-----+-----+-------+--------+-----------+
| 1 | 122 | Bob | GymA | 2,3,4 |
+-----+-----+-------+--------+-----------+
| 2 | 131 | Mary | GymA | 1,2,4 |
+-----+-----+-------+--------+-----------+
| 3 | 122 | Bob | GymB | 1,2,3 |
+-----+-----+-------+--------+-----------+
TECHNIQUES
+-----+------------+
| ID | Technique |
+-----+------------+
| 1 | Running |
+-----+------------+
| 2 | Walking |
+-----+------------+
| 3 | Hopping |
+-----+------------+
| 4 | Skipping |
+-----+------------+
我遇到的麻烦是一个 MSSQL 查询,它可以可靠地为我提供表中执行某种技术的每个人的列表。
例如,假设我想要列出每个喜欢跳过的人的列表。期望的结果是:
PREFERS_SKIPPING
+-----+-------+--------+
| PID | Name | Gym |
+-----+-------+--------+
| 122 | Bob | GymA |
+-----+-------+--------+
| 131 | Mary | GymA |
+-----+-------+--------+
同样跳跃:
PREFERS_HOPPING
+-----+-------+--------+
| PID | Name | Gym |
+-----+-------+--------+
| 122 | Bob | GymA |
+-----+-------+--------+
| 122 | Bob | GymB |
+-----+-------+--------+
我可以在 ColdFusion 中轻松拆分字符串,但由于 PERSONNEL 表的大小,这不是一个选项。任何人都可以帮忙吗?