[RESOLU] Select sur deux tables

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 : [RESOLU] Select sur deux tables

Re: Select sur deux tables

par Couin » 20 janv. 2017, 16:08

Plop !

Je fonctionne avec une date déjà actuellement, qui permet d'afficher juste la dernière date de production.
Cependant , je trouve que c'est un poil plus lent qu'au début , quand il y avait peu de lignes donc à mon avis plus la table est grande en nombre de lignes, plus cela sera "lent" . Je n'ose pas imaginer dans 3 mois.

Nous n'avons pas spécialement besoin de garder d'évènements très vieux, j’avais prévu et fait une fonctionnalité pour le profil manager, une fonction pour que ca supprimer les événements antérieurs à x mois , mais dans ce cas il ne serait alors plus du tout possible de rechercher un évènement antérieur à cette période.
Avec la table d'archivage, on garde le même principe de travailler sur une table qui a peu de lignes, tout en gardant la possibilité (via une option du genre "Utiliser l'archivage" pour faire une recherche sur quelque chose d'ancien.

Je viens de tester en reproduisant chez moi avec une base de test (car je ne suis pas au boulote là lol), UNION donne le résultat escompté :)

En revanche, pourquoi les tables "histo" , ce serait moyen ?

Merci à vous deux :)

Re: Select sur deux tables

par moogli » 20 janv. 2017, 13:10

salut,

tu ne peux pas simplement utiliser des champs dans cette table et ajouter un critère sur les dates ?
c'est moyen les tables "histo"

@+

Re: Select sur deux tables

par Spols » 20 janv. 2017, 09:19

Oui c'est possible, tu peux le faire avec une UNION il suffit de "raccorder" 2 requète avec UNION

mais je te proposerai plutot de fonctionner avec un champs DATE et un filtrage sur ce champs. car si en 10 jours tu as 1500 events qu'est ce que ce sera en 1 an ? un filtre du dernier mois, ou autre te sera plus utile que de devoir déplacer les events que tu considère comme archivable.

De plus, cela ne te demandera pas de faire l'archivage en manuel ou semi manuel (avec CRON ou autre) car le filtrage sera dynamique et paramètrable au besoin

Select sur deux tables

par Couin » 20 janv. 2017, 06:47

Hello :)

Me revoilà avec une nouvelle question tordue :D

Voilà, en gros, j'ai une table trs_events dans laquelle je liste tous les évènements que j'enregistre (un peu comme une main courant on dira).
Si par exemple je veux lister tous les id_events de cette table , je fais :

Code : Tout sélectionner

$sql = "SELECT * FROM trs_events WHERE 1"; $requete = mysql_query( $sql ) ; while( $result = mysql_fetch_object( $requete ) ) { echo($result->id_event)."<br>"; }
Et donc j'ai tous les résultats comme ceci :
1
2
3
...
jusqu'au dernier.

Le script est en place depuis 10 jours et il y a déjà 1400 lignes.

Dans l'esprit d'alléger ces diverses requêtes quotidiennes, je souhaiterais splitter cette table pour en transférer les évènements antérieurs à x jours, vers une table trs_events_archiv .
Ca je pense que je devrais y arriver.

En revanche, si je veux faire une recherche avec une option incluant l'arche, il faut que je puisse chercher dans les deux tables comme si elles étaient contigües.

Evidement, j'ai tenté de faire ceci :

Code : Tout sélectionner

$sql = "SELECT * FROM trs_events, trs_events_archiv WHERE 1"; $requete = mysql_query( $sql ) ; while( $result = mysql_fetch_object( $requete ) ) { echo($result->id_event)."<br>"; }
Mais évidement, ca ne fonctionne pas comme attendu puisque 'uqi'l va me sortir plusieurs fois les mêmes id_events avant de passer au suivant :
1
1
...
1
2
...
2
2
3
3
...
3

etc etc

Ma question est de savoir si il est possible de faire ce que je souhaite, et si oui, je serais preneur d'une piste à explorer, car toutes les recherches m’amènent sur la jointures entre deux tables .

MErci et bonne année :)
Couin