susi: mysql: select statement kategorisieren! HILFE!

hallo,

ich hab ein problem zu auf welches ich bis daot noch nie gestossen bin!

ich habe drei tables ... produkte (id|namen|...), cat (id|name|...), cat_mn (id|foreign_id|local_id)
also produkte beherbergt die produkte, cat die kategorien und cat_mn ist die m:n beziehung zwischen produkten die mehreren kategorien zugewiesen werden können!

nun hab ich leider keine ahnung wie ich z.B jeweils fünf produkte jeder kategorie mit einem select anfrage?

also ich kann ja, für jede kategorie eine eigene sql anfrage stellen und mit limit 0,5 selektieren, jedoch ist meine frage wie mach ich dies in einem statement?

dazu muss es ja bereits hundert erklärungen geben, oder? artikel die m:n kategoriesiert sind usw. usw.

leider bin ich nicht in der lage dieses statement zu formlieren ...

HILFE!!!

bussi susi

  1. yo,

    welche version von mysql ?

    Ilja

    1. yo,

      welche version von mysql ?

      mySQL 5.0.x

      ich hab gehört irgendwie mit subselects sollte es gehen ...
      keine ahnung jedoch wie ...

      1. yo,

        SELECT c.name, p.*
        FROM cat c
        INNER JOIN cat_nm t ON t.hier_cat_fremdschlüssel = c.id
        INNER JOIN produkte p ON p.id = t.hier_produkte_fremdschlüssel
        WHERE p.id IN (SELECT p2.id
                       FROM produkte p2
                       INNER JOIN cat_nm t2 ON t2.hier_produkte_fremdschlüssel= p2.id
                       WHERE t2.hier_cat_fremdschlüssel = c.id
                       LIMIT 0,5
                       ORDER BY p2.id
                      )
        ;

        wenn du eine datumspalte in der produkt-tabelle hast, dann sortiere besser nach dieser spalte anstellen nach dem primary key zu sortieren.

        Ilja

        1. danke vorerst ... vielmals ...