Suchen Sie den Primärschlüssel aus einer Tabelle in einer durch Kommas getrennten Liste

Ich habe die Aufgabe erhalten, einen Bericht zu erstellen, der auf einer sehr schlecht gestalteten Tabellenstruktur basiert.

Betrachten Sie die folgenden beiden Tabellen. Sie enthalten Techniken, die jeder gerne in jedem Fitnessstudio ausführt. Beachten Sie, dass eine eindeutige Person möglicherweise in mehreren Zeilen in der Tabelle PERSONAL angezeigt wird:

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   |
+-----+------------+

Ich habe Probleme mit einer MSSQL-Abfrage, mit der ich zuverlässig eine Liste aller Personen in der Tabelle erhalte, die eine bestimmte Technik ausführen.

Nehmen wir zum Beispiel an, ich möchte eine Auflistung aller Personen, die gerne überspringen. Die gewünschten Ergebnisse wären:

PREFERS_SKIPPING
+-----+-------+--------+
| PID | Name  | Gym    |
+-----+-------+--------+
| 122 | Bob   | GymA   |
+-----+-------+--------+
| 131 | Mary  | GymA   |
+-----+-------+--------+

Ebenso hüpfen:

PREFERS_HOPPING
+-----+-------+--------+
| PID | Name  | Gym    |
+-----+-------+--------+
| 122 | Bob   | GymA   |
+-----+-------+--------+
| 122 | Bob   | GymB   |
+-----+-------+--------+

Ich kann die Zeichenfolgen in ColdFusion problemlos aufteilen, dies ist jedoch aufgrund der Größe der Tabelle PERSONNEL keine Option. Kann jemand helfen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage