我有这个要求
SELECT ACC.ID_LIENPARENTE,
ACC.ID_VOYAGE,
ACC.LI_ACC_NOM,
ACC.LI_ACC_PRENOM,
ACC.PA_ID_INDICATIF_TEL,
ACC.CO_ACC_MEL,
ACC.TE_ACC_TELEPHONE,
E_PAYS.PA_ID AS PA_ID_INDICATIF_TEL_ACC,
E_PAYS.PA_I_INDICATIF AS PA_INDICATIF_TEL_ACC,
E_PAYS.PA_L_NOM_LISTE as PA_L_NOM_LISTE_INDICATIF_TEL_ACC
FROM
dbo.E_ACCOMPAGNANT ACC
JOIN E_PAYS ON E_ACCOMPAGNANT.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID
INNER JOIN dbo.R_LIEN_PARENTE LIEN_PAR
ON
ACC.ID_LIENPARENTE = LIEN_PAR.ID_LIENPARENTE
WHERE ID_VOYAGE = 10
当我执行此操作时,我收到此错误消息:
多部分标识符“E_ACCOMPAGNANT.PA_ID_INDICATIF_TEL”可以 不受束缚。
出了什么问题
答案 0 :(得分:4)
如果为表定义别名,则必须使用始终。
取代
JOIN E_PAYS ON E_ACCOMPAGNANT.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID
与
JOIN E_PAYS ON ACC.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID
答案 1 :(得分:2)
您必须通过别名PA_ID_INDICATIF_TEL
ACC
SELECT ACC.ID_LIENPARENTE,
ACC.ID_VOYAGE,
ACC.LI_ACC_NOM,
ACC.LI_ACC_PRENOM,
ACC.PA_ID_INDICATIF_TEL,
ACC.CO_ACC_MEL,
ACC.TE_ACC_TELEPHONE,
E_PAYS.PA_ID AS PA_ID_INDICATIF_TEL_ACC,
E_PAYS.PA_I_INDICATIF AS PA_INDICATIF_TEL_ACC,
E_PAYS.PA_L_NOM_LISTE as PA_L_NOM_LISTE_INDICATIF_TEL_ACC
FROM
dbo.E_ACCOMPAGNANT ACC
JOIN E_PAYS ON ACC.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID
INNER JOIN dbo.R_LIEN_PARENTE LIEN_PAR
ON
ACC.ID_LIENPARENTE = LIEN_PAR.ID_LIENPARENTE
WHERE ID_VOYAGE = 10
答案 2 :(得分:0)
如juergen
所述,如果您要加入表格,则需要使用alias
名称。
你去吧
SELECT ACC.ID_LIENPARENTE,
ACC.ID_VOYAGE,
ACC.LI_ACC_NOM,
ACC.LI_ACC_PRENOM,
ACC.PA_ID_INDICATIF_TEL,
ACC.CO_ACC_MEL,
ACC.TE_ACC_TELEPHONE,
E_PAYS.PA_ID AS PA_ID_INDICATIF_TEL_ACC,
E_PAYS.PA_I_INDICATIF AS PA_INDICATIF_TEL_ACC,
E_PAYS.PA_L_NOM_LISTE as PA_L_NOM_LISTE_INDICATIF_TEL_ACC
FROM
dbo.E_ACCOMPAGNANT ACC
--JOIN E_PAYS ON E_ACCOMPAGNANT.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID // alias not used
JOIN E_PAYS ON ACC.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID -- need to use alias for query
INNER JOIN dbo.R_LIEN_PARENTE LIEN_PAR
ON
ACC.ID_LIENPARENTE = LIEN_PAR.ID_LIENPARENTE
WHERE ID_VOYAGE = 10