Mailinglisten-Archive |
Ok ok, man sollte nicht gleich am fruehen morgen schnell mal zwischendurch so was schreiben ohne vorher erstmal einen starken Schwarztee getrunkten zu haben, wenn man keine Zeit zum testen hat. Also jetzt nochmal die hoffentlich richtige Loesung: SELECT p2.* FROM pix p1, pix p2 WHERE p1.usr_name = p2.usr_name AND p1.id = 0815 AND ( p1.id < p2.id AND 6 >= ( SELECT COUNT(*) FROM pix pi WHERE pi.usr_name = p1.usr_name AND pi.id BETWEEN p1.id AND p2.id ) ) OR ( p1.id > p2.id AND 6 >= ( SELECT COUNT(*) FROM pix pi WHERE pi.user_name = p2.usr_name AND pi.id BETWEEN p2.id AND p1.id ) ) ORDER BY p2.datum Es gibt auch noch eine einfachere die ueber einen 11 x JOIN geht mit id+1,..., id+5 bzw. id-1,..., id-5. Diese hier hat aber den Vorteil, dass die id nicht fortlaufend sein muss und auch die Randbereiche beruecksichtigt werden, in denen keine 5 Vorgaenge oder Nachfolger existieren. tschau Jan Kuehl schrieb: > Hi noch mal ... > >>Michael Schoenboeck schrieb: >> >> >>>Moin, >>> >>>Ich frage mich ob folgendes in SQL machbar ist: >>> >>>Originalabfrage: >>>select * from `pix` where id='0815' and usr_name='maxi'"; >>> >>>Gibt mir einen datensatz zurück, was auch ok so ist, da ID der >>>primerschlüssel ist >>> >>>Jetzt möchte ich aber auch 5 datensätze passend zu usr_name VOR diesem >>>datensatz und 5 nach diesem datensatz, sortiert nach datum. >>> >>>Das in einer abfrage, wo von mir aus gesamt 10 (11) datensätze geliefert >>>werden... >>> >>>Hm, hat da wer ideen? >>> >>>Lg >>>michael >>> >>>-- >>>Deine Online Community -> http://net4u.cc/ >>>Chat, Foren, SMS, Mail, Web, Fun & more... >>> >> >> > > -- Software-Tomography - we make the invisible visible! Jan Kuehl Software-Tomography GmbH Karlstr.7 D-03044 Cottbus e-Mail: jan.kuehl at software-tomography.com http://www.software-tomography.com Phone: +49 (0355) 4945077 ----------------------------
php::bar PHP Wiki - Listenarchive