Je vais obtenir des données du monde réel de mon mieux pour cette requête avec laquelle je vais avoir du mal.SQL Comparaison de 2 tables avec une table de liens
Tableau HierarchySet:
HierarchySetId ClientId
22 1866
23 1866
Tableau utilisateur:
UserId UserName ClientId
76 TestUser 1866
Tableau LinkTable:
LinkId UserId OrganisationId HierarchySetId
20241 76 1822 23
20242 76 1877 23
Maintenant, une note sur le champ "LinkTable" "OrganisationId" est qu'ils sont juste une référence sans rapport avec l'une de ces tables, c'est juste un exemple de comment un utilisateur peut avoir plusieurs lignes dans ce Ce que j'essaie de faire ici, est de spécifier un HierarchySetId et un ClientId - J'ai besoin de trouver tous les utilisateurs de ce ClientId qui n'ont pas de lignes dans Linktable pour HiearchySetId - I suis absolument stupéfait! - J'utilise SQL Server 2008.
Merci!
Edit: Merci Preet ci-dessous, la requête finale est sorti comme ceci:
SELECT *
FROM User u
INNER JOIN HierarchySet h ON h.ClientId = u.ClientId
LEFT OUTER JOIN LinkTable l ON
l.HierarchySetId = h.HierarchySetId
AND u.UserId = l.UserId
WHERE l.HierarchySetId IS NULL and l.UserId IS NULL
AND u.ClientId = xxxxxx
AND h.HierarchySetId = xxxxxx
Celui-ci a fonctionné parfaitement, je vous remercie beaucoup. – ShaunO
(sifflets et semble penaud - c'était une conjecture complète!) –