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