Je souhaite insérer le user_Id d'une table dans le parent_id d'une autre table, mais il n'y a pas de valeurs communes entre les deux tables.
P粉323224129
2023-07-30 13:35:25
<p style="white-space:normal;">J'ai actuellement trois tables : </p><p style="white-space:normal;">table des utilisateurs//Les données sont insérées lors de l'inscription <pre class="brush:php;toolbar:false;">usersId //CLÉ PRIMAIRE
nomutilisateur
Nom d'utilisateur
IDutilisateur
e-mail
mot de passe utilisateur
dateHeure</pre>
<p><code>parent</code>
<pre class="brush:php;toolbar:false;">id //CLÉ PRIMAIRE
ikB
Nom ml
mE-mail
mTéléphone
nom de famille
fLnom
fE-mail
fTéléphone
adresseL1
adresseL2
ville
stateAbbr
fermeture éclair
créé à
user_id //CLÉ ÉTRANGÈRE</pre>
<p>J'ai utilisé la colonne email de la table users et mEmail ou fEmail pour insérer l'userId dans la table parents. </p>
<p><code>Enfants</code>
<pre class="brush:php;toolbar:false;">child_id //CLÉ PRIMAIRE
enfant1Nom
dobEnfant1
âgeEnfant1
enfant2Nom
dobEnfant2
âgeEnfant2
enfant3Nom
dobEnfant3
âgeEnfant3
enfant4Nom
dobEnfant4
âgeEnfant4
nomenfant5
dobEnfant5
âgeEnfant5
enfant6Nom
dobEnfant6
âgeEnfant6
enfant7Nom
dobEnfant7
âgeEnfant7
enfant8Nom
dobEnfant8
âgeEnfant8
enfant9Nom
dobEnfant9
âgeEnfant9
enfant10Nom
dobEnfant10
âgeEnfant10
parent_id //CLÉ ÉTRANGÈRE</pre>
<p>Il n'y a pas de valeurs communes entre la table des enfants et les deux autres tables. Mon attente est de faire une validation entre la table des utilisateurs et la table parent, et si l'ID utilisateur de la table des utilisateurs et l'ID utilisateur de la table parent sont égaux, insérez cette valeur dans le parent_id de la table enfants. Est-ce possible? J'ai envisagé d'utiliser une jointure croisée, mais je crains que les performances ne diminuent à mesure que le nombre d'entrées dans la base de données augmente. </p>
<pre class="brush:php;toolbar:false;">SELECT usersId FROM utilisateurs ;
SELECT user_id FROM parent ;
MISE À JOUR des enfants (parent_Id) INNER JOIN parent ON children.parent_id = users.usersId
MISE À JOUR des enfants
SELECT ID utilisateur
DES utilisateurs
cross JOIN children.parent_id ON users.usersId = children.parent_id
MISE À JOUR des enfants
Utilisateurs INNER JOIN
(INNER JOIN parent SUR users.userId = parent.userId)
SUR utilisateurs.usersId = parent.user_id
SET children.parent_id = parent.user_Id;</pre>
<p>J'ai essayé toutes les méthodes sans succès. J'ai aussi essayé de changer l'ordre des connexions mais cela n'a pas fonctionné non plus. Merci beaucoup pour toute aide que vous pouvez apporter. </p>
En fonction de votre description, vous souhaitez mettre à jour la colonne parent_id dans la table enfant en fonction de la valeur correspondante entre la table utilisateur et la table parent. Vous souhaitez mettre à jour le parent_id dans la table enfant avec le usersId de la table users et le user_id de la table parent.
Vous pouvez le faire en utilisant la requête SQL suivante :
Explication :
Assurez-vous de sauvegarder votre base de données avant d'exécuter des requêtes de mise à jour, juste pour être sûr. ,
En ce qui concerne vos préoccupations concernant les performances à mesure que les entrées de la base de données augmentent, cette requête devrait être efficace tant qu'il existe des index appropriés sur les colonnes pertinentes, telles que email dans la table des utilisateurs et mEmail et fEmail dans la table parent. Les index accéléreront considérablement le processus de recherche, en particulier lorsque vous travaillez avec de grands ensembles de données.