我试图了解如何在 INSERT 语句中不包含子查询的情况下构建有效且优化的查询。
我有 3 个表: - 用户(用户 ID、姓名、姓氏、......、......和部门 ID) - 类次(shiftId,......,......,......) - 部门(deptId、部门)
在注册表中,要求用户选择他的部门。 我想在 users.deptId 中插入从 Departments.deptId 中获取的相对于所选办公室的 ID 号。 一旦我弄清楚如何制作它,我就会将以下查询转换为准备好的语句。
这是缩短的版本:
INSERT INTO users (userId, name , surname, deptId)
VALUES
('','$name', '$surname', (select deptId from departments where dept = '$choosen_dept'));
有什么办法可以避免这个丑陋的子查询吗?
非常感谢!
最佳答案
我的做法是这样的:
$query = "INSERT INTO users(user_id, surname, deptId)
SELECT '$name', '$surname', deptId
FROM departments WHERE dept = '$chosen_dept';"
关于mysql - 尝试使用 MySQL 避免使用预准备语句进行子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21070215/