Ich möchte die user_Id einer Tabelle in die parent_id einer anderen Tabelle einfügen, aber es gibt keine gemeinsamen Werte zwischen den beiden Tabellen.
P粉323224129
2023-07-30 13:35:25
<p style="white-space:normal;">Ich habe derzeit drei Tabellen: </p><p style="white-space:normal;">users table//Daten werden bei der Registrierung eingefügt <pre class="brush:php;toolbar:false;">usersId //PRIMÄRSCHLÜSSEL
userfName
Benutzername
userUid
Email
userPwd
dateTime</pre>
<p><code>parent</code>
<pre class="brush:php;toolbar:false;">id //PRIMÄRSCHLÜSSEL
ikB
mLname
mEmail
mPhone
fname
fLname
fEmail
fTelefon
AdresseL1
AdresseL2
Stadt
stateAbbr
Reißverschluss
hergestellt in
user_id //FÜR AUSLÄNDISCHER SCHLÜSSEL</pre>
<p>Ich habe die E-Mail-Spalte aus der Benutzertabelle und mEmail oder fEmail verwendet, um die Benutzer-ID in die Elterntabelle einzufügen. </p>
<p><code>Kinder</code> Tabelle</p>
<pre class="brush:php;toolbar:false;">child_id //PRIMÄRSCHLÜSSEL
kind1Name
dobChild1
AlterKind1
kind2Name
dobChild2
ageChild2
child3Name
dobChild3
AlterKind3
child4Name
dobChild4
AlterKind4
child5Name
dobChild5
AlterKind5
child6Name
dobChild6
AlterKind6
kind7Name
dobChild7
AlterKind7
child8Name
dobChild8
AlterKind8
child9Name
dobChild9
AlterKind9
child10Name
dobChild10
AlterKind10
parent_id //FOREIGN KEY</pre>
<p>Es gibt keine gemeinsamen Werte zwischen der Kindertabelle und den beiden anderen Tabellen. Meine Erwartung besteht darin, eine Validierung zwischen der Benutzertabelle und der übergeordneten Tabelle durchzuführen. Wenn die Benutzer-ID der Benutzertabelle und die Benutzer-ID der übergeordneten Tabelle gleich sind, fügen Sie diesen Wert in die übergeordnete ID der untergeordneten Tabelle ein. Ist das möglich? Ich habe über die Verwendung eines Cross-Joins nachgedacht, befürchte aber, dass die Leistung sinkt, wenn die Anzahl der Einträge in der Datenbank zunimmt. </p>
<pre class="brush:php;toolbar:false;">SELECTuserIdFROMuser;
SELECT user_id FROM parent;
UPDATE Kinder (parent_Id) INNER JOIN parent ONchildren.parent_id =users.usersId
UPDATE Kinder
Wählen Sie die Benutzer-ID aus
VON Benutzern
Kreuz JOIN Children.Parent_id ON Users.usersId = Children.Parent_id
UPDATE Kinder
INNER JOIN-Benutzer
(INNER JOIN parent ON users.userId = parent.userId)
ON users.usersId = parent.user_id
SET children.parent_id = parent.user_Id;</pre>
<p>Ich habe jede Methode ohne Erfolg ausprobiert. Ich habe auch versucht, die Reihenfolge der Verbindungen zu ändern, aber das hat auch nicht funktioniert. Vielen Dank für jede Hilfe, die Sie leisten können. </p>
根据您的描述,您希望根据用户表和父母表之间的匹配值,更新子表中的 parent_id 列。您想要使用用户表的 usersId 和父母表的 user_id 来更新子表中的 parent_id。
您可以使用以下 SQL 查询来实现:
解释:
在运行任何更新查询之前,请务必备份数据库,以确保安全。、
至于您对于数据库条目增长时性能的担忧,只要在相关列上有适当的索引,例如 users 表中的电子邮件以及 parent 表中的 mEmail 和 fEmail,此查询应该是高效的。索引将显著加快查找过程,尤其是在处理大型数据集时。