Sql server SQL Server使用具有复合键的表进行联接

Sql server SQL Server使用具有复合键的表进行联接,sql-server,inner-join,Sql Server,Inner Join,我需要在以下查询尝试中加入四个表: SELECT PROJECT.PROJECT_ID , PROJECT_STATUS.PRO_STATUS_NAME , PROJECT.PROJECT_NAME , SKILL.SKILL_NAME FROM PROJECT_STATUS INNER JOIN PROJECT ON PROJECT_STATUS.PRO_STATUS_ID = PROJECT.PRO_STATUS_ID INNER JOIN PRO_SKI

我需要在以下查询尝试中加入四个表:

SELECT PROJECT.PROJECT_ID
     , PROJECT_STATUS.PRO_STATUS_NAME
     , PROJECT.PROJECT_NAME
     , SKILL.SKILL_NAME
FROM PROJECT_STATUS
INNER JOIN PROJECT    ON PROJECT_STATUS.PRO_STATUS_ID = PROJECT.PRO_STATUS_ID
INNER JOIN PRO_SKILL  ON SKILL.SKILL_ID = PRO_SKILL.SKILL_ID 
                     AND PRO_SKILL.PROJECT_ID = PROJECT.PROJECT_ID;
不幸的是,PRO_SKILL表使用了一个复合键,因此在尝试运行查询时,我一直遇到以下错误:

Msg 4104,16级,状态1,第6行-多部分标识符 无法绑定“SKILL.SKILL\u ID”。Msg 4104,第16级,状态1,行 1无法绑定多部分标识符“SKILL.SKILL\u NAME”

有没有一种方法可以正确地连接使用复合键的表

PRO_SKILL有一个组合键,由以下部件组成: 项目ID和技能ID

技能只有一个由技能ID组成的常规PK


提前谢谢你的帮助

你错过了技能表,试试这个

SELECT PROJECT.PROJECT_ID
     , PROJECT_STATUS.PRO_STATUS_NAME
     , PROJECT.PROJECT_NAME
     , SKILL.SKILL_NAME
FROM PROJECT_STATUS
INNER JOIN PROJECT    ON PROJECT_STATUS.PRO_STATUS_ID = PROJECT.PRO_STATUS_ID
INNER JOIN PRO_SKILL  ON PRO_SKILL.PROJECT_ID = PROJECT.PROJECT_ID
INNER JOIN SKILL      ON SKILL.SKILL_ID = PRO_SKILL.SKILL_ID

你的技能在哪里。我在您的查询中看不到这一点。@sqlhdv我对查询进行了以下更改以满足您的建议(谢谢!)选择PROJECT.PROJECT\u ID、PROJECT\u STATUS.PRO\u STATUS\u NAME、PROJECT.PROJECT\u NAME,SKILL.SKILL\u NAME FROM PROJECT\u STATUS内部连接PROJECT\u STATUS\u ID=PROJECT.PRO\u STATUS\u ID内部连接SKILL.SKILL\u ID=PRO\u SKILL.SKILL\u ID内部连接PRO\u SKILL.PROJECT\u ID=PROJECT.PROJECT\u ID