クエリを実行していますが、行が重複しています。なぜなのかわかりません。これが私のクエリです:
SELECT c.FName,
p.ProductName,
s.Description,
s.Quantity,
s.Price
FROM customers c,
products p,
sellers s,
requests r
WHERE c.ID = s.CID
AND p.ProductID = s.ProductID
AND r.ProductID = s.ProductID
AND r.C_ID = 3
AND r.MatchType = 'Price'
ORDER BY s.Price ASC
=======編集=======
これが、Requestsテーブルの値がどのように見えるかを編集したものです。注:CID 2 = DAZ(通常は売り手)、3 = Paul(通常は売り手)、5 = compny1(通常は売り手)注:製品ID 1 =リンゴ、製品ID 2 =梨、製品ID 3 =ベリー、製品ID4 =オレンジ
レコードMatchType=PriceおよびcustID= 3を選択すると、Requestテーブルは次のようになります。
requestid | cid | productid | Quantity | Price | matchtype
------------------------------------------------------------------
1 3 1 3.0 2.00 price
3 3 4 4.0 2.50 price
4 3 3 2.5 2.00 exact
5 3 2 3.0 3.50 exact
6 3 3 3.0 2.00 exact
7 3 1 10.0 7.00 price
これが売り手の表です
promotionID | cid | productid | Quantity | Price | description
------------------------------------------------------------------
1 2 4 5.0 2.99 oranges
2 2 3 1.5 1.00 hand strawberries
3 2 3 2.5 2.00 l stawberries
4 2 2 3.0 3.00 pear
5 5 1 5.0 5.00 royal apples fm appleco.
6 2 1 6.0 5.50 sweet apples
クエリを実行した後、提案された結合とこの質問の結合の両方を試しましたが、これを出力として取得し続けます
FName ProductName Description Quantity Price
daz Oranges Fresh and sweet oranges. 5.0 2.99
compny1 Apple royal apples fm appleco. 5.0 5.00
compny1 Apple royal apples fm appleco. 5.0 5.00
daz Apple sweet apples 6.0 5.50
daz Apple sweet apples 6.0 5.50
繰り返されている行を受信している理由がわかりません。要求された製品IDは、要求された製品を利用可能な製品と一致させるために=セラーの製品IDである必要があり、この場合に選択されたcustomerIdは3...です。
最後の4つのレコードがなぜそれらを自分で繰り返すのかわかりませんか?なんでこれなの?
技術的に言えば、4つのレコードのみを表示する必要があります。つまり、行のレコード.. 1、2、および3
提案/観察OKay、これを見た後... productID1 = appleが同じ顧客から異なる数量で2回要求されたため、行が繰り返されていると思いますか?
requestid | cid | productid | Quantity | Price | matchtype
------------------------------------------------------------------
1 3 1 3.0 2.00 price
7 3 1 10.0 7.00 price