2010-10-12 270 views
1

我正在尝试这样的内部连接。无法绑定多部分标识符“Reservation.ReservationID”

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

我收到的错误为:

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. 

回答

4

别名 “R” 和 “P” 掩盖了实际的表名。

尽管这里不适用,但它通常是有意义的。例如,当你有一个自联接

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

它的工作原理,但有什么区别? – 2010-10-12 12:07:14

+1

@Nadeem:Reservation.ReservationID不存在,因为您使用了“R”。例如,如果你有两次预订,例如? – gbn 2010-10-12 12:09:07

+0

+1为自我加入的东西 – 2010-10-12 12:12:00

1

尝试,而不是

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

from Reservation R 
inner join PersonName P 
on R.ReservationID = P.ResrvationID 
相关问题