我正在使用 SQL Server 2008 R2。我想加入表格,但总是得到错误
无法绑定多部分标识符
我有 3 张桌子Drivers
和. 我有外键。如何加入这些表以获取所有三个表的详细信息?Request
Journey
driver_id
Journey
Select driver.driver_name
from Drivers,
Journey
where driver.id = journey.id
and driver.id=1;
我正在使用 SQL Server 2008 R2。我想加入表格,但总是得到错误
无法绑定多部分标识符
我有 3 张桌子Drivers
和. 我有外键。如何加入这些表以获取所有三个表的详细信息?Request
Journey
driver_id
Journey
Select driver.driver_name
from Drivers,
Journey
where driver.id = journey.id
and driver.id=1;
您似乎只加入了三张桌子中的两张 - 对吗?
正确的、符合 ANSI SQL-92 标准的方法是:
SELECT
driver.driver_name
FROM
Drivers
INNER JOIN
Journey ON driver.id = journey.id
WHERE
driver.id = 1;
这是使用ANSI 标准(自1992年以来- 至今已有 20 多年!)JOIN
的语法INNER JOIN
(还有LEFT OUTER JOIN
,和更多) RIGHT OUTER JOIN
,FULL JOIN
而不仅仅是用逗号分隔FROM
子句中的表列表。
请参阅 Aaron Bertrand 的优秀博文 踢坏习惯:在该主题上也使用旧式 JOIN 。
当在 SELECT 语句中引用列时使用别名并且使用的别名未在 SELECT 语句的 FROM 子句中的任何位置定义时,通常会发生此错误。
有关更多详细信息,请访问此处
司机+s
Select Drivers.driver_name
from Drivers,
Journey
where Drivers.id = journey.id
and Drivers.id=1;