我目前有三个表格:
users表格 // 数据在注册时插入
usersId //PRIMARY KEY userfName userlName userUid email userPwd dateTime
parent table
id //PRIMARY KEY mFname mLname mEmail mPhone fFname fLname fEmail fPhone addressL1 addressL2 city stateAbbr zip created_at user_id //FOREIGN KEY
我使用了users表格中的email列以及mEmail或fEmail来将usersId插入到parents表格中。
Children Table
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
在儿童桌和其他两个表之间没有共同的数值。我的期望是在用户表和父表之间进行验证,如果用户表的usersId和父表的user_id相等,则将该值插入到children表的parent_id中。这种操作是否可行?我考虑使用交叉连接(cross join),但我担心随着数据库中的条目数量增长,性能会受到影响。
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;
我已经尝试了每一种方法,但都没有成功。我还尝试改变连接的顺序,但也没有用。非常感谢您提供的任何帮助。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
根据您的描述,您希望根据用户表和父母表之间的匹配值,更新子表中的 parent_id 列。您想要使用用户表的 usersId 和父母表的 user_id 来更新子表中的 parent_id。
您可以使用以下 SQL 查询来实现:
解释:
在运行任何更新查询之前,请务必备份数据库,以确保安全。、
至于您对于数据库条目增长时性能的担忧,只要在相关列上有适当的索引,例如 users 表中的电子邮件以及 parent 表中的 mEmail 和 fEmail,此查询应该是高效的。索引将显著加快查找过程,尤其是在处理大型数据集时。