我想将一个表中的user_Id插入到另一个表的parent_id中,但是这两个表之间没有共同的值。
<p style="white-space:normal;">我目前有三个表格:</p><p style="white-space:normal;">users表格 // 数据在注册时插入<pre class="brush:php;toolbar:false;">usersId //PRIMARY KEY
userfName
userlName
userUid
email
userPwd
dateTime</pre>
<p><code>parent</code> table</p>
<pre class="brush:php;toolbar:false;">id //PRIMARY KEY
mFname
mLname
mEmail
mPhone
fFname
fLname
fEmail
fPhone
addressL1
addressL2
city
stateAbbr
zip
created_at
user_id //FOREIGN KEY</pre>
<p>我使用了users表格中的email列以及mEmail或fEmail来将usersId插入到parents表格中。</p>
<p><code>Children</code> Table</p>
<pre class="brush:php;toolbar:false;">child_id //PRIMARY KEY
child1Name
dobChild1
ageChild1
child2Name
dobChild2
ageChild2
child3Name
dobChild3
ageChild3
child4Name
dobChild4
ageChild4
child5Name
dobChild5
ageChild5
child6Name
dobChild6
ageChild6
child7Name
dobChild7
ageChild7
child8Name
dobChild8
ageChild8
child9Name
dobChild9
ageChild9
child10Name
dobChild10
ageChild10
parent_id //FOREIGN KEY</pre>
<p>在儿童桌和其他两个表之间没有共同的数值。我的期望是在用户表和父表之间进行验证,如果用户表的usersId和父表的user_id相等,则将该值插入到children表的parent_id中。这种操作是否可行?我考虑使用交叉连接(cross join),但我担心随着数据库中的条目数量增长,性能会受到影响。</p>
<pre class="brush:php;toolbar:false;">SELECT usersId FROM users;
SELECT user_id FROM parent;
UPDATE children (parent_Id) INNER JOIN parent ON children.parent_id = users.usersId
UPDATE children
SELECT usersId
FROM users
cross JOIN children.parent_id ON users.usersId = children.parent_id
UPDATE children
INNER JOIN users
(INNER JOIN parent ON users.userId = parent.userId)
ON users.usersId = parent.user_id
SET children.parent_id = parent.user_Id;</pre>
<p>我已经尝试了每一种方法,但都没有成功。我还尝试改变连接的顺序,但也没有用。非常感谢您提供的任何帮助。</p>