Ich habe die folgende Tabelle:verfeinern aus den Ergebniswert von Reihen gruppiert (nicht VIEW erstellen kann, weil Abfrage enthält subquery)
----------------------------
| id | product | price |
----------------------------
| 1 | 1 | 50 |
| 2 | 1 | 39 |
| 3 | 1 | 60 |
----------------------------
Was ich brauche, ist der niedrigste Preis (39) nach Produkt geordnet zu erhalten (1) und behalten Sie die ID (2) des niedrigsten Preises.
Ich habe diese Abfrage
SELECT
id,
product,
MIN(price) AS price
FROM
variant
GROUP BY
product
, dass die Ergebnisse auf
----------------------------
| id | product | price |
----------------------------
| 1 | 1 | 39 |
----------------------------
Aber das Ergebnis, denn ich bin auf der Suche ist
----------------------------
| id | product | price |
----------------------------
| 2 | 1 | 39 |
----------------------------
konnte ich das Ergebnis erhalten mit diesem Abfrage
select B.id, A.* FROM
(SELECT product,MIN(price) AS minprice
FROM variant GROUP BY product) A
JOIN variant B ON A.product = B.product and A.minprice = B.price
aber ich muss auch eine Sicht mit dieser Abfrage erstellen und da es einen Subselect innerhalb der von gibt, kann ich nicht die Sicht erstellen.
Gibt es einen anderen Weg, um das Ergebnis zu bekommen, das ich gesucht habe?
Ich habe eine Geige gemacht: http://sqlfiddle.com/#!9/d2ddb2