mysql > obtenir résultats connexes en une query

mysql > obtenir résultats connexes en une query - SQL/NoSQL - Programmation

Marsh Posté le 01-12-2010 à 11:18:03    

Bonjour, actuellement, pour recenser les deux pages precedentes & suivantes je fais :
   select nom,url from pages where id<$id order by id desc limit 1
   select nom,url from pages where id>$id order by id asc limit 1
en plus de select nom,url,contenu from pages where id=$id ..

 

Je pensais faire nom,url,contenu from pages where id>$id-2 order by id asc limit 3 .. mais il y a parfois des trous dans ces derniers ( hé oui .. )

 

soit trois requêtes, est-il possible de n'en faire qu'une seule à cet endroit ?
merci bcp  :jap:


Message édité par grosbin le 01-12-2010 à 11:22:47

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 01-12-2010 à 11:18:03   

Reply

Marsh Posté le 01-12-2010 à 12:03:29    

Un truc de ce style? :??:

 
Code :
  1. SELECT nom, url, contenu
  2. FROM pages
  3. WHERE id = $id
  4. OR id = (SELECT max(id) FROM pages WHERE id < $id)
  5. OR id= (SELECT min(id) FROM pages WHERE id > $id)
  6. ORDER BY id
 

ou alors avec un between :

 
Code :
  1. SELECT nom, url, contenu
  2. FROM pages
  3. WHERE id BETWEEN (SELECT max(id) FROM pages WHERE id < $id) AND  (SELECT min(id) FROM pages WHERE id > $id)
  4. ORDER BY id



Message édité par skeye le 01-12-2010 à 12:06:08

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-12-2010 à 13:29:51    

Superbe fonctionne à merveille, merci


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed