如何在内部联接中绕过"循环引用"

Gri*_*ler 1 sql sql-server sql-server-2008

我在Inner Join中有以下'循环依赖',任何想法如何绕过它?

SELECT *FROM Reference 
INNER JOIN ReferenceInActivity ON Activity.ActivityID = ReferenceInActivity.ActivityID 
INNER JOIN @tbActivity AS Activity ON ReferenceInActivity.ReferenceID = Reference.ReferenceID 
Run Code Online (Sandbox Code Playgroud)

我收到错误:消息4104,级别16,状态1,行387无法绑定多部分标识符"Activity.ActivityID".

Jus*_*her 5

您在"on"语句或join语句中将它包含在查询中之前,在"on"语句中使用Activity.像这样切换你的"on"语句:

SELECT     * 
FROM       Reference 
INNER JOIN ReferenceInActivity 
ON         ReferenceInActivity.ReferenceID = Reference.ReferenceID
INNER JOIN @tbActivity AS Activity 
ON         Activity.ActivityID = ReferenceInActivity.ActivityID 
Run Code Online (Sandbox Code Playgroud)