2017-10-07 7 views
1

J'ai créé dans mysqli form1 avec table1 et table2. Tableau1 conserve les données comme le prénom, le nom, l'âge et Tableau2 conserve les données de poids corporel et de graisse corporelle.Joindre 2 tables avec mysqli dans une nouvelle table et difficulté à afficher les nouvelles données insérées

J'ai utilisé ce code pour faire une nouvelle table3 où prenom, nom et poids sont affichés (mais seulement les données qui sont déjà insérés dans les tables):

Create table table3 as 
Select table1.firstname, table1.lastname, table2.bodyweight 
From table1 
LEFT JOIN table2 ON table1.table1_id = table2.table2_id; 

Le problème est que quand j'insère de nouvelles données à table1 elles ne sont pas montrées à table3 ... Des pensées sur ce qui peut être la cause?

Répondre

1

La création d'une table copie de cette manière les données sélectionnées et les insère dans la nouvelle table. Une fois cela fait, il n'y a plus de relation entre cette nouvelle table et les tables utilisées dans la requête.

Si vous souhaitez mettre à jour automatiquement chaque fois que table1 et table2 sont mis à jour, vous pouvez créer une vue à la place:

Create view table3 as 
Select table1.firstname, table1.lastname, table2.bodyweight 
From table1 
LEFT JOIN table2 ON table1.table1_id = table2.table2_id; 
+1

explication si simple! merci beaucoup, j'ai lutté pendant des jours ... –

+0

Bonjour encore! question rapide. Est-il possible de rendre les vues modifiables comme des tableaux? –

+0

@ath_zach oui, mais pas avec une 'jointure gauche'. Voir la documentation de MySQL sur [Updatable and Insertable Views] (https://dev.mysql.com/doc/refman/5.7/en/view-updatability.html) pour plus de détails. – Mureinik