Wie ich es verstehe, dass Sie nur wollen Mitarbeiter, die sind Finanzdienstleistungen Projektmanager sehen, aber Sie wollen auch ihre anderen Fähigkeiten zu sehen. Sie filtern gerade, um nur Aufzeichnungen mit dem spezifischen Team/der Fähigkeit der Finanzdienstleistungen und des Projektmanagements zu sehen. Wenn Sie stattdessen ID
s für diese Personen verwenden und eine Unterabfrage verwenden, können Sie alle ihre Fähigkeiten zurückgeben. Etwas wie folgt aus:
SELECT Staff.FullName, Skills.Name, Staff.Team, StaffSkills.Rating
FROM StaffSkills
INNER JOIN Staff ON Staff.Id = StaffSkills.StaffId
INNER JOIN Skills ON Skills.Id =StaffSkills.SkillId
WHERE Staff.ID in (
SELECT Staff.ID
FROM StaffSkills
INNER JOIN Staff ON Staff.Id = StaffSkills.StaffId
INNER JOIN Skills ON Skills.Id =StaffSkills.SkillId
WHERE Staff.Team LIKE '%financial services%'
AND Skills.Name LIKE '%project management%')
Edit: Auch sollten Sie überlegen, LIKE
-=
wo möglich zu verändern. Oder verwenden Sie nur einen Platzhalter %
. =
und LIKE 'abc%'
können Indizes verwenden. Doppel-Wildcards '%abc%'
wird nicht (vollständige Zeichenfolge sucht).
Die Regeln sind unklar. Geben Sie nur die Benutzer des Finanzdienstleistungsteams mit der Fähigkeit des Projektmanagements zurück. UND diese Benutzer mit irgendwelchen Ihrer aufgelisteten anderen Fähigkeiten unabhängig vom Team und mit Projektmanagementfähigkeiten? Zeigen Sie ein Beispielergebnis, das Ihren Bedarf verdeutlichen würde. und warum so viele "LIke" -Aussagen ... kann es nicht eine Gleichheitsprüfung sein? – xQbert
Ihre Frage ist ein wenig unklar. Vielleicht würde es helfen, wenn Sie uns einige Beispieldaten zusammen mit der gewünschten Ausgabe zeigen. –
Bitte zeigen Sie die erwartete Ausgabe an. Es wird auch nützlich sein, eine Scheintabelle zu erstellen und Datenskript einzufügen, um Zeit für diejenigen zu sparen, die versuchen, Ihnen zu helfen – objectNotFound