Sql server 多个表的旧联接语法

Sql server 多个表的旧联接语法,sql-server,Sql Server,我试图使用SQLServer2008中旧的内部联接语法将四个表联接在一起,但我弄不明白,我一直得到一个笛卡尔积。我尝试了多种不同的方法,但仍然得到重复的结果。 我的错误在哪里 代码: 我不知道你们的桌子,但读在哪里看起来很奇怪 TC.intCustomerID=TCOI.intCustomerID对于第一个表,我想应该是WHERE TC.intCustomerID=TCO.intCustomerID 如果TCustomers(TC)包含您的所有客户,TCustomerOrders(TCO)包含您

我试图使用SQLServer2008中旧的内部联接语法将四个表联接在一起,但我弄不明白,我一直得到一个笛卡尔积。我尝试了多种不同的方法,但仍然得到重复的结果。 我的错误在哪里

代码:


我不知道你们的桌子,但读
在哪里看起来很奇怪
TC.intCustomerID=TCOI.intCustomerID
对于第一个表,我想应该是
WHERE
TC.intCustomerID=TCO.intCustomerID

如果TCustomers(TC)包含您的所有客户,TCustomerOrders(TCO)包含您的订单,我猜该订单是链接到客户的

您的查询看起来是将客户直接链接到订单的项目,如果订单有多个项目,这可能是错误的

顺便问一下,为什么客户ID存储在TCCustomerOrderItems表中


我可能完全错了,您应该像其他人所说的那样提供一些示例数据,不过

我们可以得到这4个表的模式吗?也许还有一些示例数据
SELECT 
     TC.intCustomerID
    ,TC.strFirstName + ',' + TC.strLastName AS strCustomer
    ,TCO.intOrderIndex
    ,TCO.dtmOrder
    ,TI.intItemID
    ,TI.strItem
    ,TCOI.intQuantity
FROM
     TCustomers AS TC
    ,TCustomerOrders AS TCO
    ,TCustomerOrderItems AS TCOI
    ,TItems AS TI
WHERE 
    TC.intCustomerID = TCOI.intCustomerID
AND TCO.intOrderIndex = TCOI.intOrderIndex
AND TCOI.intItemID = TI.intItemID
ORDER BY 
     TC.intCustomerID
    ,strCustomer