[RESOLU] Probleme Jointure entre plusieurs tables

Petit nouveau ! | 5 Messages

01 mai 2021, 01:36

Je travaille sur un application PHP, Mysql dont j'ai une base composé de trois tables :
table 1 : objects (id, nom) [352093088485056, objects01 ; 358480086797737, objects02]
table 2 : objects_data_352093088485056(post,haut)
table 3 : objects_data_358480086797737(post,haut)
Comment je peut faire la jointure entre ces trois tables pour que je puisse récupérer toutes les
informations ?
Pour info : j'ai pas la possiblité d'ajouter des clés étrangres au niveau de tables
articles_data_352093088485056 , articles_data_358480086797737 .

Petit nouveau ! | 5 Messages

01 mai 2021, 11:56

1- La table objects c'est la table principale : Lors de l'ajout d'un nouveau object l'insertion est faite
au niveau de cette table : l'utilisateur ajoute les informations fixes.

2- Les tables : objects_data_xxx(xxx = 352093088485056 , 358480086797737 ...) ce sont les tables utilisées pour stocker des informations et pour assurer l'archivages vue que les informations sont très volumineux (plus que 500000 lignes par jours).

Pour Info la table objects contient actuellement plus que 500 lignes , donc j'ai 500 tables objects_data_xxx créer automatiquement lors de l'insertion au niveau de la table objects


Je cherche une solution de mieux ?!

Eléphant du PHP | 133 Messages

11 mai 2021, 13:28

Il faut une donnée commune entre les tables, un identifiant de référence qui lie les tables.

Eléphant du PHP | 133 Messages

11 mai 2021, 13:37

Un exemple de ce que j'ai fait pour un bureau qui fait partie d'une association.

Code : Tout sélectionner

$sql = "SELECT * FROM t_bureau INNER JOIN t_associations ON t_bureau.Id_Assos=t_associations.Id_Assos INNER JOIN t_role ON t_bureau.Id_Role=t_role.Id_Role INNER JOIN t_droit ON t_bureau.Id_Droit=t_droit.Id_Droit WHERE Id_Bureau=:Id_Bureau;";
Les membres du bureau un rôle définit dans une autre table et un droit aussi définit dans une autre table

Petit nouveau ! | 5 Messages

11 mai 2021, 14:44

Il suffit de faire une simple select entre les deux tables vue que j'ai pas une relation forte (clé primaire et clé étrangère)
$id ='352093088485056';
SELECT *  FROM objects  g,objects_data_352093088485056 WHERE g.id='$id'  ...;