0

SQL Server 2008 の古い内部結合構文を使用して 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
4

1 に答える 1

0

私はあなたのテーブルを知りませんがWHERE TC.intCustomerID = TCOI.intCustomerID、最初のテーブルを読むのは奇妙に見えWHERE TC.intCustomerID = TCO.intCustomerIDます。

TCustomers (TC) にすべての顧客が含まれ、TCustomerOrders (TCO) に注文が含まれている場合、注文は顧客にリンクされていると思いますか?

クエリは、顧客を注文の商品に直接リンクしているように見えますが、注文に複数の商品がある場合、これは間違っている可能性があります。

ところで、なぜ顧客 ID が TCustomerOrderItems テーブルに格納されるのでしょうか。

私は完全に間違っているかもしれませんが、他の人が言ったように、いくつかのサンプルデータを提供する必要があります

于 2013-06-30T04:16:06.003 に答える