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