Tsql 我试图加入3个表,得到我不完全理解的结果

Tsql 我试图加入3个表,得到我不完全理解的结果,tsql,Tsql,我刚刚在SQL Server上安装了Northwind。我设置了这个简单的查询,它连接三个表 SELECT SUPP.SupplierID, CompanyName, ContactName, ProductName, CategoryID, OrderID, ORD.ProductID FROM Suppliers as SUPP INNER JOIN Products as PROD ON SUPP.SupplierID=PROD.SupplierID INNER JOIN [Order D

我刚刚在SQL Server上安装了Northwind。我设置了这个简单的查询,它连接三个表

SELECT SUPP.SupplierID, CompanyName, ContactName, ProductName, CategoryID, OrderID, ORD.ProductID
FROM Suppliers as SUPP
INNER JOIN Products as PROD
ON SUPP.SupplierID=PROD.SupplierID
INNER JOIN [Order Details] as ORD
On PROD.ProductID=PROD.ProductID;
我总共有165935张唱片。我以为会少很多很多。我想我遗漏了一些基本的东西,但不确定是什么。我知道它不是笛卡尔积,但我不知道它是什么

这是模式

我预计不会有超过2155条记录,因为这是最大表中的最大记录数,而且很可能会得到比2155少得多的记录

选择计数 来自[NORTHWND].[dbo].[Order Details] 选择计数 来自[NORTHWND].[dbo].[Products] 选择计数* 来自【西北】【dbo】【供应商】

请让我知道我做错了什么

谢谢

我正在编辑我的作品

下面的脚本运行良好,并给我2155条记录,这是我所期望的或更少

SELECT [Order Details].OrderID, [Order Details].ProductID, Products.ProductID AS Expr1, Products.SupplierID, Suppliers.SupplierID AS Expr2, Suppliers.CompanyName
FROM   [Order Details] 
INNER JOIN
Products ON [Order Details].ProductID = Products.ProductID 
INNER JOIN
Suppliers ON Products.SupplierID = Suppliers.SupplierID

问题是,我使用了“编辑器中的设计查询”工具来获得这个结果。我真的试图通过在SQL中绑定每个字符来实现这一点…而不是依赖GUI工具…

Ghost,你是对的!这是最终结果

SELECT SUPP.SupplierID, CompanyName, ContactName, ProductName, CategoryID, OrderID, ORD.ProductID
FROM Suppliers as SUPP
INNER JOIN Products as PROD
ON SUPP.SupplierID=PROD.SupplierID
INNER JOIN [Order Details] as ORD
On ORD.ProductID=PROD.ProductID;

我犯了愚蠢的错误。我唯一的借口是我8个月大的男婴在我设置查询时分散了我的注意力。现在有道理了。这就是我要找的。非常感谢你

在我看来,您的查询和结果还可以。也许你可以描述你实际期望的输出。顺便说一下,您并不是在做笛卡尔积;我觉得不对