Reputation: 9986
I have this request
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
when i execute this i have this error message:
The multi-part identifier " E_ACCOMPAGNANT.PA_ID_INDICATIF_TEL " can not be bound.
What is wrong
Upvotes: 1
Views: 67
Reputation: 4727
As stated by juergen
you need to use the alias
name if you are joining the tables.
Here you go
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
Upvotes: 0
Reputation: 4767
You have to reference PA_ID_INDICATIF_TEL
by the alias 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
Upvotes: 2
Reputation: 204894
If you define an alias name for a table, then you have to use it always.
Replace
JOIN E_PAYS ON E_ACCOMPAGNANT.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID
with
JOIN E_PAYS ON ACC.PA_ID_INDICATIF_TEL = E_PAYS.PA_ID
Upvotes: 4