Die folgende Abfrage wählt den niedrigsten Preis Produkt in jeder Produktlinie von products
Tabelle:MySQL - den niedrigsten Wert aus einer Tabelle auswählen mit JOIN
SELECT
a.productline, a.productCode, a.productName, a.buyprice
FROM
products a
LEFT JOIN
products b ON a.productline = b.productline
AND b.buyprice < a.buyprice
WHERE
b.productcode IS NULL;
Sie den Code finden here. Ein Online-Editor zum Testen des Codes ist here.
Ich kann einfach nicht verstehen, wie die Abfrage mit einer gegebenen productLine
aus Tabelle a
die niedrigste buyPrice
findet. Für eine bestimmte Zeile in a
mit einer bestimmten productLine
, möglicherweise mehrere Zeilen aus der Tabelle b
. 1) Wie wird der niedrigste ausgewählt? 2) Wie kann b.productcode
jemals NULL
als Tabelle a
und b
die gleiche Tabelle sein?
Entfernen Sie die WHERE-Klausel und verwenden Sie 'SELECT *' - Dann sehen Sie, wie LEFT JOIN funktioniert. –