我正在運行一個查詢,我得到重複的行。我不明白這是爲什麼。這是我的查詢:重複行SQL查詢
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
======= =======編輯
好這裏的編輯什麼的請求表看起來像值。注:CID 2 = DAZ(通常爲賣家),3 =保羅(一般爲購買人),5 = compny1(通常爲賣家) 注:產品ID 1 =蘋果,產品ID 2 =梨,產品3 =漿果, ID4 =橙
請求表看起來是這樣的選擇記錄後使用MatchType =價格和卡斯特ID = 3:
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
運行後查詢我我曾試過兩個建議的連接和這個問題中的一個我一直在等待HIS作爲輸出
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
我不明白爲什麼我recieving被重複行。請求的產品ID必須=賣家產品id以匹配請求的產品到可用產品,並且在這種情況下選擇的customerId是3 ...
我不明白爲什麼最後4條記錄會重複它們自我嗎?爲什麼這可能是?
從技術上講只應顯示4條記錄。即行上的記錄.. 1,2和3
建議/觀察 OKay,看了這個......你認爲行重複,因爲productID1 = apple已被同一個客戶請求兩次不同的數量?
requestid | cid | productid | Quantity | Price | matchtype
------------------------------------------------------------------
1 3 1 3.0 2.00 price
7 3 1 10.0 7.00 price
也許這些產品在'requests'中有多個匹配項。 – 2013-02-17 22:27:19
當您進行連接時,每個連接對都會顯示出來,所以如果您加入了一個帶有一個條目的表,並且該表的外部鍵有10行,那麼答案將會有10行。 – 2013-02-17 22:37:32
@MartinSmith 以及與客戶ID 3請求表給出了以下請求:它們是由用戶3請求的產品 巧克力,2公斤,2.00 choclate,10公斤,8.00 甜食,3千克,3.00 ....有兩個供應商銷售巧克力和甜食...... 1個供應商即compny1只銷售一種產品choclate ..另一個供應商daz銷售這兩種產品。我只是不明白爲什麼最後4行重複他們自我? – johnny 2013-02-17 22:45:34