Hallo zusammen,
ich habe eine realtiv komplexe MySQL Abfrage, in der es darum geht Produktdaten, mit Daten von Bildern, Auktionsdaten zusammenzuführen.
Das Problem:
Ich will den Höchstpreis zu jeder Auktion aus der Datenbank der Bieter mit max() holen. Das erfordert jedoch, dass ich auch die GROUP BY Klausel einsetzte. Wenn aber noch niemand etwas geboten hat, kann ich nicht nach der auction_id gruppieren, da es ja keinen Eintrag damit gibt. Das Ergebnis sieht wie folgt aus: statt Einträge für die 2 existierenden Auktionen zu holen, kommt nur eine an.
Jetzt zu meiner Frage: Was für Alternativen habe ich um das gewünschte Ergebnis zu erzielen? Oder wie strukturiere ich meine Abfrage um, damit die Ergebnisse trotzdem kommen?
Ich hoffe ihr versteht mein Problem, weiß nicht genau wie ich's ausdrücken sollte :P
Hier mein Query:
ich habe eine realtiv komplexe MySQL Abfrage, in der es darum geht Produktdaten, mit Daten von Bildern, Auktionsdaten zusammenzuführen.
Das Problem:
Ich will den Höchstpreis zu jeder Auktion aus der Datenbank der Bieter mit max() holen. Das erfordert jedoch, dass ich auch die GROUP BY Klausel einsetzte. Wenn aber noch niemand etwas geboten hat, kann ich nicht nach der auction_id gruppieren, da es ja keinen Eintrag damit gibt. Das Ergebnis sieht wie folgt aus: statt Einträge für die 2 existierenden Auktionen zu holen, kommt nur eine an.
Jetzt zu meiner Frage: Was für Alternativen habe ich um das gewünschte Ergebnis zu erzielen? Oder wie strukturiere ich meine Abfrage um, damit die Ergebnisse trotzdem kommen?
Ich hoffe ihr versteht mein Problem, weiß nicht genau wie ich's ausdrücken sollte :P
Hier mein Query:
Code:
SELECT t1.auction_id as `id`, t1.auction_end as `end`, t1.auction_start_price as `start_price`, t2.product_id as `product_id`, t2.product_group as `product_group`, t2.product_no as `product_no`, t2.product_product as `product_product`, t2.product_type as `product_type`, t2.product_year as `product_year`, t3.product_description as `product_description`, [B]max(t4.bidder_price) as `price`,[/B] t5.product_pic_filename as `pic_filename`, t6.product_pic_comment as `pic_comment` FROM auctions t1 LEFT JOIN products t2 USING(product_id) LEFT JOIN products_de t3 USING(product_id) [B]LEFT JOIN auction_bidders t4 USING(auction_id)[/B] LEFT JOIN product_pics t5 ON t2.product_default_pic = t5.product_pic_id LEFT JOIN product_pics_de t6 ON t2.product_default_pic = t6.product_pic_id WHERE t1.auction_abort = '0000-00-00 00:00:00' AND t1.auction_end > NOW() [B]GROUP BY t4.auction_id[/B] ORDER BY t1.auction_end ASC, t1.auction_start ASC
Kommentar