Selectionner les dernieres entrées dans BDD

ZebraII Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

Bon j'ai un petit souci depuis un moment et je n'arrive vraiment pas à le résoudre :

J'ai une base de données contenant plusieurs tables, mon probleme est simple, je voudrais pouvoir effectuer une requête qui me permette de récupérer les 10 dernieres entrées toutes tables confondues dans la base de données. Ces données n'ont rien avoir entre elles je voudrais juste lister les 10 plus récentes, mais pas dans chacune des tables encore une fois je le repéte toutes tables confondues, comment faire ?

2 réponses

Utilisateur anonyme
 
Bonjour,
Il faut avoir dans chacune des tables une information qui permette de faire la comparaison (comme par exemple une date de saisie), sinon rien ne permettra de savoir quel élément d'une table est postérieur à un autre élément d'une autre table.
Ensuite, en supposant que les tables n'ont pas la même structure, il faudra créer une table temporaire qui pourrait avoir la structure suivante :

élément de compraison et concaténation des informations d'une table.

dans laquelle on mettrait toutes les tables.

On requêtre sur la table temporarire avec un tri desc sur le critère de coparaison avec limit 0,10 donnera la solution.
0
ZebraII Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
en effet, on pourrait faire celà sauf qu'effectivement toutes les tables ont la meme structure... je sais bien que j'aurais du n'en faire qu'une seule et rajouter un champ pour différencier les différents post, mais il est trop tard a présent...
0
Utilisateur anonyme > ZebraII Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Ok même stucture mais quel est le champs qui permet de classer les enregistrements dans le temps ?
si il n'y en a pas, le problème est insoluble
0
ZebraII Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
On pourrait en utiliser plusieurs, un champ ID qui s'auto incrémente, pourrait faire l'affaire puisqu'il existe, mais il me semblerait plus sur d'utiliser le champ Date qui effectivement contient la date et l'heure précise du POST.
0
Utilisateur anonyme > ZebraII Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Non, un champ qui s'auto incrémente ne permet pas de classer les enregistrements d'une table par rapport à une autre, ou alors il faudrait que l'auto incrément soit pour toutes les tables !

il faut donc une information discriminante de chaque enregistrement. Si cela existe alors quelque chose du genre
select *, champs_discriminant as tri from table1, table2, table3 order by tri desc
0
ZebraII Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
Ah, bien vu, je vais aller essayer ça sur le champ, si je puis dire, merci bien, je n'y aurai pas pensé, comme quoi...
0
CaPiT Messages postés 622 Statut Membre 51
 
Peux tu mettres ta requête SQL ici.

Sinon pour t'aider, il faut que dans ton SQL tu fassses un SELECT TOP 10 [nomchamp] ...
0
ZebraII Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Non je ne peux pas faire cela, puisque comme je viens de le signaler un tout petit peu plus tot, toutes les tables ont la meme strucure, du reste je pourrais faire un selct TOP 10 si ma requête ne portait que sur une seule table, or ce n'est pas le cas. Je ne peux pas mettre ma requête puisqu'elle n'existe pas encore sans quoi je ne serais pas la ;-) ...
0