Ich habe eine Tabelle mit zwei Tabellen, wo eine Tabelle Produktdaten und die anderen Preisdaten einschließlich mehrerer Rabattpreise enthält. Nicht jedes Produkt hat mehrere Einträge in der Preistabelle, da einige Produkte nur einen Einheitspreis haben. Was ich herausfinden möchte, ist in meiner Auswahl, wie man eine Flagge setzt, die mich wissen lässt, ob ein Produkt mehrere Preise zur Verfügung hat.mysql join Wählen Sie den niedrigsten Preis Flag
Der Code, den ich jetzt habe (siehe unten) gibt die Produkte zurück und findet den niedrigsten Preis für jedes Produkt. Wie gesagt, nicht alle Produkte haben einen "niedrigsten Preis". Ich versuche zu bestimmen, ob der Preis, der mit dem Produkt kommt, ein einheitlicher Preis oder ein niedrigster Preis ist.
SELECT products.*
, products_pricing.*
FROM products
LEFT
JOIN products_pricing
ON products.product_id = products_pricing.product_id
LEFT
JOIN products_pricing AS filter
ON products_pricing.product_id = filter.product_id
AND products_pricing.qty_price > filter.qty_price
WHERE filter.product_id IS NULL
AND products.product_active > 0
ORDER
BY products.product_id DESC
(Ich bin mit MySQL nicht vertraut), aber könnten Sie die Produkte abfragen? Vielleicht so etwas, wo Sie sich einer Unterabfrage anschließen oder diese als 'Ansicht' speichern, der Sie beitreten? SELECT \t MIN (Preis), CASE WHEN COUNT (*) = 1 THEN 1 ELSE 0 END AS SINGLE_PRICE VON PRODUKTEN GROUP BY PRODUCT_ID – Sean
Was das gewünschte Ergebnis aussehen würde? Besser noch, siehe http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-very-simple- sql-query – Strawberry