Unterabfrage

  • diese Abfrage funktioniert manchmal. warum nicht immer?

    SELECT produkt_id AS id, produktname, produktbeschreibung,
    (SELECT bild_id FROM shop_bilder WHERE produkt_id=id ORDER BY RAND() LIMIT 1) AS bildid,
    (SELECT bildname FROM shop_bilder WHERE bild_id=bildid) AS bildname,
    (SELECT typ FROM shop_bilder WHERE bild_id=bildid) AS typ
    FROM shop_produkte
    GROUP BY shop_produkte.produkt_id

    Einmal editiert, zuletzt von dreix (1. März 2009 um 09:21)

  • Ich weiß jetzt nicht genau wie und wofür du die Abfrage verwendest, aber könnte es nicht sinnvoller sein das zu splitten in die Abfrage auf shop_produkte und in einer Schleife in der du die Ergebnisse ausliest für die jeweilige Zeile nur eine Abfrage für die drei Felder die du aus shop_bilder brauchst zu machen?
    Damit sparst du zwei SELECT-Anfragen pro Produkt.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook