Guten Tag,
ich habe folgendes Problem.
Ich habe eine Tabelle epa_productprizes:
In dieser Tabelle stehen Preise von Produkten zu einem bestimmten Datum(wird in Sekunden gespeichert, was die ganzen PHP-Datumsfunktionen auch benutzen).
In productprizes_userid steht die Benutzer-Id, von demjenigen, der diesen Preis angelegt hat und in productprizes_supplierid steht die Id für einen Anbieter(Supplier und User stehen beide einer einer Tabelle)
Ich muss nun eine "Vergleichsfunktion" in mein Programm einbauen, dass z.B 3 Supplier verglichen werden.
MySQL soll also nur die Preise der Artikel vergleichen, die alle 3 Supplier haben. Theoretisch könnten die Supplier auch mehrer Produkte anbieten, aber ich will eben nur alle Produkte, die alle drei Supplier anbieten und deren Preise abfragen, sodass ich eine Preisentwicklung ausgeben kann. Preise sollen auch nur miteinander verglichen werden, wenn er nicht älter als 90 Tage ist.
Meine momentane SQL-Abfrage sieht so aus.
$min = unter Datumsgrenze
$slist = mit Komma separierte Supplier-Ids
$ilist = Anzahl der Supplier
Diese Anweisung funktioniert auch, allerdings kann ein Supplier in 90 Tagen 3 Preise haben und die anderen keinen und er würde trotzdem etwas ausgeben.
Kann mir jemand helfen?
greetz Flip
ich habe folgendes Problem.
Ich habe eine Tabelle epa_productprizes:
Code:
productprizes_id int(11) auto_increment productprizes_productid int(11) productprizes_supplierid int(11) productprizes_userid int(11) productprizes_date int(11) productprizes_prize float
In productprizes_userid steht die Benutzer-Id, von demjenigen, der diesen Preis angelegt hat und in productprizes_supplierid steht die Id für einen Anbieter(Supplier und User stehen beide einer einer Tabelle)
Ich muss nun eine "Vergleichsfunktion" in mein Programm einbauen, dass z.B 3 Supplier verglichen werden.
MySQL soll also nur die Preise der Artikel vergleichen, die alle 3 Supplier haben. Theoretisch könnten die Supplier auch mehrer Produkte anbieten, aber ich will eben nur alle Produkte, die alle drei Supplier anbieten und deren Preise abfragen, sodass ich eine Preisentwicklung ausgeben kann. Preise sollen auch nur miteinander verglichen werden, wenn er nicht älter als 90 Tage ist.
Meine momentane SQL-Abfrage sieht so aus.
$min = unter Datumsgrenze
$slist = mit Komma separierte Supplier-Ids
$ilist = Anzahl der Supplier
Code:
SELECT productprizes_productid productprizes_date count(productprizes_id) as cnt FROM epa_user INNER JOIN `epa_productprizes` ON(productprizes_supplierid = user_id) WHERE user_id IN($slist) AND productprizes_date > $min GROUP BY productprizes_productid HAVING cnt > $ilist
Kann mir jemand helfen?
greetz Flip
Kommentar