2010-10-12 14 views
1

J'essaye une jointure interne comme celle-ci.L'identificateur en plusieurs parties "Reservation.ReservationID" n'a pas pu être lié

select R.ReservationID, R.BookingNumber,P.FirstName, P.LastName 
from Reservation R inner join PersonName P 
on Reservation.ReservationID = PersonName.ResrvationID 

Je reçois les erreurs comme:

Msg 4104, Level 16, State 1, Line 1 
The multi-part identifier "Reservation.ReservationID" could not be bound. 
Msg 4104, Level 16, State 1, Line 1 
The multi-part identifier "PersonName.ResrvationID" could not be bound. 

Répondre

4

alias masques "R" et "P" le nom réel de la table.

Bien qu'il ne s'applique pas ici, il a un sens en général. Par exemple, lorsque vous avez une auto rejoindre

select R.ReservationID, R.BookingNumber,P.FirstName, P.LastName 
from Reservation R inner join PersonName P 
on R.ReservationID = P.ReservationID --use aliasas 
+0

Il fonctionne, mais quelle est la différence? –

+1

@Nadeem: Reservation.ReservationID n'existe pas car vous avez utilisé "R". Que faire si vous avez eu une réservation deux fois par exemple? – gbn

+0

+1 pour l'auto-jointure –

1

Essayez plutôt

select 
    R.ReservationID 
, R.BookingNumber 
, P.FirstName 
, P.LastName 

from Reservation R 
inner join PersonName P 
on R.ReservationID = P.ResrvationID 
Questions connexes