2009-10-28 3 views
1

J'ai la 'dépendance circulaire' suivante dans ma jointure interne, des idées pour la contourner?Comment contourner une 'référence circulaire' dans une jointure interne

SELECT *FROM Reference 
INNER JOIN ReferenceInActivity ON Activity.ActivityID = ReferenceInActivity.ActivityID 
INNER JOIN @tbActivity AS Activity ON ReferenceInActivity.ReferenceID = Reference.ReferenceID 

Je reçois l'erreur: Msg 4104, niveau 16, état 1, ligne 387 L'identifiant multi-partie "Activity.ActivityID" ne pouvait pas être lié.

Répondre

5

Vous utilisez Activity dans l'instruction "on" avant de l'avoir inclus dans la requête dans l'instruction "from" ou dans une instruction de jointure. Changez vos "on" déclarations comme ceci:

SELECT  * 
FROM  Reference 
INNER JOIN ReferenceInActivity 
ON   ReferenceInActivity.ReferenceID = Reference.ReferenceID 
INNER JOIN @tbActivity AS Activity 
ON   Activity.ActivityID = ReferenceInActivity.ActivityID 
+0

Parfait! Je vous remercie! – Gribbler

Questions connexes