J'utilise PHP et MySQL pour une page Web, et je veux réutiliser les informations que j'ai dans trois tables de base de données, similaire à une opération «Enregistrer sous».Copier les informations sélectionnées de plusieurs tables sans utiliser beaucoup de requêtes?
Les tables sont liées par une structure arborescente 1-multiple et 1-many. Je l'ai jusqu'ici mis en œuvre en aplatissant la structure arborescente avec php (similaire à une table géante) et de le stocker dans un tableau. Puis en boucle sur chaque ligne, et même sur chaque partie de la ligne, et pour chacun d'eux inséré dans la table correspondante avec une requête. Cela fonctionne en quelque sorte, mais avec beaucoup de code pour voir si chaque post a même les informations de la troisième table (il pourrait être vide). Maintenant, ma question est la suivante: est-ce que cela pourrait être mis en œuvre de façon plus efficace? Il pourrait y avoir beaucoup de requêtes à la base de données de cette façon.
Le problème ici semble être comment relier les nouveaux messages. J'ai regardé 'SELECT INTO', mais comme je dois relier les nouvelles clés, je ne vois pas comment cela pourrait fonctionner. De plus, mysql_insert_id ne me donne que l'identifiant le plus récent, pas tous.
Th Je vous remercie pour votre réponse. C'est beaucoup plus clair que ce que je suis actuellement. Je n'ai pas considéré une instruction UPDATE car cela ne semblait pas approprié pour l'insertion de nouvelles lignes. La seule partie de la question laissée sans réponse est: s'il est possible d'éviter de faire une requête pour chaque ligne. –
@Sten Il pourrait utiliser un peu de magie SQL 'INSERT dans tablename1, tablename2 ...' ou quelque chose - je ne sais pas. Je pense que le gain de performance sera minuscule. Si vous n'avez pas de problèmes de performances réels avec cela, je dirais aller avec des requêtes séparées. –
Eh bien, je ne le fais pas, donc je vais aller avec des requêtes séparées. Je suis juste curieux de savoir si cela peut être fait, j'apprends toujours mysql donc je ne sais pas vraiment ce qui peut ou ne peut pas être fait. –