Mailinglisten-Archive |
Michael Schoenboeck wrote: > 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? mit UNION ab MySQL 4.0.0: SELECT `pix`.* FROM `pix` WHERE `pix`.`id` = '0815' AND `pix`.`usr_name` = 'maxi' UNION SELECT `pix_result`.* FROM `pix` LEFT JOIN `pix` AS `pix_5_before` ON `pix`.`usr_name` = `pix_5_before`.`usr_name` WHERE `pix`.`id` = '0815' AND `pix`.`usr_name` = 'maxi' AND `pix_5_before`.`date` < `pix`.`date` LIMIT 5 UNION SELECT `pix_5_after`.* FROM `pix` LEFT JOIN `pix` AS `pix_5_after` ON `pix`.`usr_name` = `pix_5_after`.`usr_name` WHERE `pix`.`id` = '0815' AND `pix`.`usr_name` = 'maxi' AND `pix_5_after`.`date` > `pix`.`date` LIMIT 5 so in der art ... irgendwie, viel spaß beim rumprobieren! -- Sebastian Mendel (www.sebastianmendel.de) *www.warzonez.de* | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive