SQL ServerにNorthwindをインストールしました。私は3つのテーブルを結合するこの簡単なクエリをセットアップしました。私は3つのテーブルに参加しようとしており、完全に理解できない結果を得ようとしています
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件のレコードがあります。私はそれがはるかに、はるかに少ないだろうと思った。私はここに何か基本的なものが欠けていると思うけど、何が確実なのか分からない。デカルト製品ではないことは分かっていますが、私はそれが何であるか分かりません。
ここにスキーマがあります。
https://northwinddatabase.codeplex.com/
私はそれが最大のテーブル内のレコードの最大数であるとして、任意の以上2155件のレコードを期待し、最も可能性が高いではないだろう、私は2155
よりもはるかに少ない取得する必要があります。SELECT () [受注明細]。[DBO]。[NORTHWND] FROM SELECT COUNT() [NORTHWND] FROM [DBO]。[製品] SELECT COUNT(*) [NORTHWND] FROMを数えます。[ dbo]。[Suppliers]
ここで間違っていることを教えてください。
ありがとうございます!
私は以下のスクリプトが正常に動作し、私は2155年の記録を与え、私が期待するものである(または少ない)...
を私のOPを編集しています。
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
私は、この結果を得るために 'エディタでデザインクエリ'ツールを使用しました。私は実際には、GUIツールに頼るのではなく、SQLの各キャラクタを束ねることで、これを実現しようとしていました...
あなたの質問と結果は私にはよく見えます。たぶんあなたは実際にどのような出力を記述することができます。ところで、あなたはデカルト製品をやっていません。 –
'On PROD.ProductID = PROD.ProductID;'は間違っています – Ghost