Mailinglisten-Archive |
Hallo,
zu einigen Objekten gibt es Categorien und eine Kreuztabelle um
die beiden zu verknüpfen, da ein Objekt in mehreren Categorien
vorkommen kann (1/n).
Nun möchte ich die Abfrage gerne optimieren. Derzeit frage ich
die Objekte ab und mit einem extra Query pro Objekt die passenden
Categorien dieses Objektes.
z.B.:
SELECT ob.oID, ob.titel, kr.name, ob.descr
FROM objects AS ob
LEFT JOIN autoren AS kr ON ob.kID = kr.kID
WHERE ob.oID IN (17, 123, 236);
und dann noch:
SELECT ct.cID, ct.descr FROM categorie AS ct
LEFT JOIN matrix AS ma ON ma.cID = ct.cID
WHERE ma.oID = 17;
SELECT ct.cID, ct.descr FROM categorie AS ct
LEFT JOIN matrix AS ma ON ma.cID = ct.cID
WHERE ma.oID = 123;
SELECT ct.cID, ct.descr FROM categorie AS ct
LEFT JOIN matrix AS ma ON ma.cID = ct.cID
WHERE ma.oID = 236;
Abschliessend durchwandere ich das Ergebnis und hänge an jeden
Record, die gefundenen Categorien an.
Geht das eventuell auch direkt in SQL ?
mit bestem Gruß Carlo
php::bar PHP Wiki - Listenarchive