2017-08-10 68 views
0

我很努力地與多個供應商創建價格比較表。MySQL比較價格

表有以下幾列 - 讓叫它表1:

|name |partnumber |supplier |cost 
CD  11A   West  10.11 
CD  11A   East  10.00 
USB  BBB   North  125.01 
USB  BBB   West  101.10 

我想實現的是表1顯示以下內容:

|name |partnumber |supplier |cost 
CD  11A   East  10.00 
USB  BBB   West  101.10 

結果/區別是:在表只會顯示與最便宜的價格有產品的供應商相關的柱子。

有沒有人會介意給我一隻手?它一直在我的腦海裏。

或者;我還爲每個供應商創建了一個價格列的另一個表格,但這不是標準化數據庫,也不適合寫得很好的查詢或性能。

謝謝!

+0

請解釋一下,這列可以識別產品。 –

回答

0

此查詢您所需要的

SELECT a.name , a.partnumber , a.supplier , a.cost FROM table1 a JOIN (
    SELECT name , partnumber , MIN(cost) cost 
    FROM table1 
    GROUP BY name , partnumber 
) b ON a.name = b.name AND a.cost = b.cost AND a.partnumber = b.partnumber 

需要GROUP BY(姓名和部分號碼)的結果,並找到最低的成本爲每個組

+0

我會按partnumber分組,這可能更可靠。 –

+0

只是做了它,檢查編輯 – Ali

+0

@Noob抱歉,我沒有得到你。我怎麼能用'HAVING'? – Ali