最も安い価格で商品をお選びください。 グループ内のすべての製品の価格が異なる場合、私は最も安い製品を手に入れることができましたが、グループ内のすべての製品が同じ価格を持っていれば、機能しません。したがって商品がグループの場合、最も安い価格で商品を選択してください
私は、制限結合で余分なフィルタを追加するのに助けが必要です。
http://sqlfiddle.com/#!9/f9b16c/6
SELECT
p.id, p.price
FROM
product p
JOIN
(SELECT
product_group_id, MIN(price) AS price
FROM
product
GROUP BY product_group_id
) AS inp ON p.product_group_id = inp.product_group_id
AND p.price = inp.price;
サンプル・データ
ID |価格| | sku |
'58', '2800.0000', '1-67-131-72', '44'
'60', '3688.0000', '8-105-82-72', '30'
'61', '2750.0000', '9-105-82-72', '31'
'62', '3400.0000', '10-67-131-72', '45'
'189', '3530.0000', '7-113-114-115', '29'
'190', '3050.0000', '7-113-114-72', '29'
'193', '2980.0000', '7-105-114-115', '29'
'194', '2500.0000', '7-105-114-72', '29'
'196', '4699.0000', '8-116-114-115', '30'
'199', '4069.0000', '8-116-82-72', '30'
'200', '4318.0000', '8-105-114-115', '30'
'205', '3910.0000', '9-117-82-115', '31'
'206', '3230.0000', '9-117-82-72', '31'
'207', '3580.0000', '9-105-114-115', '31'
'256', '3550.0000', '1-135-136-137', '44'
'257', '3070.0000', '1-135-136-72', '44'
'258', '3400.0000', '1-135-131-137', '44'
'259', '2920.0000', '1-135-131-72', '44'
'260', '3430.0000', '1-67-136-137', '44'
'261', '2950.0000', '1-67-136-72', '44'
'262', '3280.0000', '1-67-131-137', '44'
'263', '3880.0000', '10-67-131-137', '45'
'292', '8750.0000', 'HobartAUPs-117-137', '53'
'293', '8750.0000', 'HobartAUP-69-72', '53'
'294', '8750.0000', 'HobartAUP-69-137', '53'
'295', '8750.0000', 'HobartAUP-117-72', '53'
望ましい結果
IDをproduct_group_id |価格
'194', '2500.0000'
'61', '2750.0000'
'58', '2800.0000'
'62', '3400.0000'
'60', '3688.0000'
'292', '8750.0000'
あなたは、「製品が最小の価格で」ではなく「それらはすべて同じ価格を持っている場合、それは動作しません」と述べた - あなたは、彼らが同じ価格を持っている場合、クエリが返すことを期待しますので、どのような?あなたはどのようにして99p全部である「1つの正しい製品」を選んでいますか? –
一部のグループには60p、65p、および55pの製品があり、1つのグループは99pとしてすべての製品を持っています。コードは第1グループでは動作しますが、第2には動作しません。 – Faraz
あなたは私を受け入れていません。あなたは同じグループの99p、llである1000の製品を持っています。そして、あなたは "私が最低の価格を持っているが、データベースが私に1000を与えた1つの製品を求めました。すべての製品は最低価格で、すべての製品を手に入れました。最低価格を持つ複数の製品がある場合に1つの製品だけを取得するというアイデアを放棄するか、またはデータベースがその中から1つを選択できるようにするロジックを考える必要があります。あなたのポケットに99pがある場合、どのように99pの卵、99pのパンまたは99pの牛乳を購入することにしますか? –