phpbar.de logo

Mailinglisten-Archive

SQL abfrage zwischen drinn?

SQL abfrage zwischen drinn?

Jan Kuehl jan.kuehl at software-tomography.com
Mit Mai 26 18:23:17 CEST 2004


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