Mailinglisten-Archive |
Hallo Niko, > -----Original Message----- > From: Nikolas Hagelstein [mailto:hagelstein at hauptsache.net] > SELECT a.artnr_neu, a.wbez, h.name, a.okat, a.ukat, a.vk, > IF ( > a.kurz != '', 1, 0 > ) AS iskurz, > IF ( > a.lang != '', 1, 0 > ) AS islang, > IF ( > ia.imgid IS NULL , 0, 1 > ) AS isimg, > IF ( > pa.pid IS NULL , 0, 1 > ) AS isprof, rt.rank > FROM artdata a > LEFT JOIN hersteller h ON a.hersteller = h.id > LEFT JOIN img_to_art ia ON a.artnr_neu = ia.artnr > LEFT JOIN profkat_to_art pa ON a.artnr_neu = pa.artnr > LEFT JOIN rankingtotal rt ON a.artnr_neu = rt.artnr > GROUP BY a.artnr_neu > ORDER BY rt.rank DESC > LIMIT 0,15 Tödlich ist ersteinmal ein Order By mit einem Feld einer referenzierten Tabelle (rt.rank). Eventuell ist es sinnvoll bestimmte infos per batch-lauf (z.B. einmal nachts als Cron-Job) zu bestimmen und in den Artikelsatz zu "kopieren". Dazu würde ich den Rang und sämtliche Felder zählen, die Du per IF bestimmst. D.h. im Artikelstamm gäbe es dann Felder wie "cp_rank, cp_has_img, cp_has_pa". Dann sollte man ein Group nicht auf ArtNr neu sondern auf cp_rank und art_nr_neu machen und auf diesen beiden Felder auch gleich einen kombinierten Index legen. Grüße, Michael Donning -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive