mysql - 尝试使用 MySQL 避免使用预准备语句进行子查询

标签 mysql insert subquery

我试图了解如何在 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/

相关文章:

mysql - 将日期合并到此 GROUP BY 和 INNER JOIN select 语句中

MYSQL - 使用子查询和 JOIN 条件

sql - 在 WHERE 谓词解决方法中配置多个子查询

Mysql slave 崩溃后不同步

php - WordPress 自定义 SQL-Query,太重了?

mysql - 将具有 GROUP BY 的 MySQL 查询转换为 SQL 查询

php - 错误: Notice: Undefined index

mysql - sql条件插入(insert value if not null or insert null)

php - MySQL - 'INSERT INTO - ON DUPLICATE KEY UPDATE' 会导致数据丢失吗

mysql - 优化mysql子查询执行时间