| 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.
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller | 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... Répondre à ZebraII | 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
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller | 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. Répondre à ZebraII | 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
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller | 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... Répondre à ZebraII |
| J'obtiens cela :
Erreur SQL !
SELECT *, date as tri FROM annonces, revue, salons WHERE TO_DAYS(NOW()) - TO_DAYS(date) <= 30 ORDER BY tri DESC LIMIT 5
Column 'date' in field list is ambiguous Répondre à ZebraII | Date est-il un champs des tables ?
ensuite pourquoi faire un where, le tri suffira
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller | Oui date est un champ commun pour chaque table, enfin le where permet a ces post de disparaitre de la HOME apres trente jours si jamais aucun autre post n'est effectué Répondre à ZebraII | Il y a donc deux choses :
enlever de vieilles lignes et trier plusieurs tables ensemble
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller |
|
|
| Alors puisque toutes les tables ont la même structure, les "merger" dans une table temporaire et trier.
à moins que l'on puisse écrire date.annonces as tri, date.revue as tri, date.salons as tri
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller | Erreur SQL !
SELECT *,annonces.date as tri, revue.date as tri, salons.date as tri FROM annonces, revue, salons ORDER BY tri DESC LIMIT 5
Column 'tri' in order clause is ambiguous
je vais finir par m'arracher les cheveux.... Répondre à ZebraII | Non gardectes cheveux il reste la solution de fusion des tables dans une table temporaire (pusiqu'elle ont la même structure)
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller | Bon tres bien lol, en revanche en y reflechissant bien je crois que je n'ai aucune idée de la façon dont on fait ca ! Répondre à ZebraII | Create temporary tabletemp (select * from annonce, revue, salon)
select * from tabletemp order by date desc
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller |
| Il ne veut pas creer cette table, pourrais je avoir la syntraxe entiere, j'ai du oublier un truc... Répondre à ZebraII |
| Erreur SQL !
CREATE TEMPORARY TABLE temp (SELECT titre, date, chapeau FROM annonces, revue, salons)
Column 'titre' in field list is ambiguous Répondre à ZebraII |
| Dans ma requête c'est select *
ce test fonctionne trés bien chez moi
create table t3 (select * from t1);
insert into t3 (select * from t2);
select * from t3 order by date desc;
avais-tu eu mon message en mail privé ?
JL, m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail Répondre à giheller |
|
|
|
|
|
|
|
|
|
|