无法绑定多部分标识符。 3表加入

时间:2018-02-18 02:29:54

标签: sql sql-server jointable

USE pubs
SELECT DISTINCT L.au_fname, L.au_lname
FROM dbo.authors L, dbo.titles B
JOIN dbo.titleauthor C ON dbo.authors.au_id=C.au_id
INNER JOIN dbo.titleauthor C1 ON B.title_id=C1.title_id
WHERE B.price >= 13
ORDER BY L.au_lname ASC

此代码中的粗体dbo.authors不断产生错误......我显然不理解别名,因为我不能为我的生活,确定错误。我尝试将其更改为" L"但同样的错误发生了。我并不认为双重加入会很难。

解释我在这里要做的事情。我试图从表作者获取信息,以显示基于表标题的WHERE语句。但是他们只在名为title title的第3个表上有共同的PK。因为我试图通过共同的PK来加入所有3张桌子。

1 个答案:

答案 0 :(得分:2)

在一个地方,您使用的是笛卡尔积,并且在一个地方您正在使用连接。不允许这样做。 你需要使用如下所示 - 添加连接条件....我没有你的列名。

USE pubs
GO


SELECT DISTINCT L.au_fname, L.au_lname
FROM dbo.authors L 
INNER JOIN dbo.titleauthor C ON L.au_id=C.au_id
INNER JOIN dbo.titles B ON B.title_id=C.title_id
WHERE B.price >= 13
ORDER BY L.au_lname ASC