mysql: select statement kategorisieren! HILFE!
susi
- datenbank
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
yo,
welche version von mysql ?
Ilja
yo,
welche version von mysql ?
mySQL 5.0.x
ich hab gehört irgendwie mit subselects sollte es gehen ...
keine ahnung jedoch wie ...
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
danke vorerst ... vielmals ...