Recuperer les X derniers enregistrements

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recuperer les X derniers enregistrements

par zeus » 26 sept. 2005, 16:20

Tu peut aussi penser au JOIN

Code : Tout sélectionner

SELECT lastupdate FROM (A JOIN B ON A.lastupdate=B.lastupdate) JOIN C ON A.lastupdate=B.lastupdate ORDER BY A.lastupdate LIMIT X,Y
Mais JOIN n'est pas inclu dans toutes les distributions MySQL

par Tho » 26 sept. 2005, 14:45

c'est possible à condition d'avoir les mêmes nombres et types de champs.

Code : Tout sélectionner

( ( SELECT id, lastupdate FROM A ) UNION ( SELECT id, lastupdate FROM B ) UNION ( SELECT id, lastupdate FROM C ) ) ORDER BY lastupdate DESC LIMIT 0,10

par sload » 26 sept. 2005, 13:41

Non finalement c'est bon je fais table par table et je compare ensuite ... Une seule requete pour les 3 tables ca n'a pas l'air possible ... Snif !

En tout cas merci !
Antoine

par HD » 26 sept. 2005, 11:21

oups mon code ne tiens pas compte de
quelque soit la table.
j'essaierai de voir ca ce soir si ce n'est toujour pas resolu d'ici là

edit : ah la la ! et en plus je l'ai basé sur l'id et pas sur le lastupdate ! tout est à refaire
je vais me coucher ca vaudrait mieux :(

par heddicmi » 26 sept. 2005, 11:15

Tu ne peux pas faire sur une requête, la récupération sur tes 3 tables en même temps... Tu vas devoir composer... Pense aussi à utiliser LIMIT

par HD » 26 sept. 2005, 11:12

on suppose que id est ta clé primaire
on recupere l'id le plus grand de ta table A
$query="select max(id) from A"; 
$result = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error()); 
$id = mysql_fetch_assoc($result); 
donc on veut les enregistrements de (id - x + 1) à (id)
$var = id - x ;

while ($id > $var) { 

$query="Select LASTUPDATE FROM A WHERE id=$id"; 
$result = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error()); 

$id = $id -1 ; 

} 

Recuperer les X derniers enregistrements

par sload » 26 sept. 2005, 11:02

Bonjour à tous,

Mon problème est le suivant j'ai 3 tables A, B,C contenant chacune un champ LASTUPDATE.

Je voudrais récuperer les X derniers enregistrements les plus récents quelque soit la table.

Comment faire ??

Merci d'avance
Antoine PACAUD