SQLfiddle 中的 MySQL UPDATE 值

标签 mysql sql sqlfiddle

我刚刚开始使用 SQL,到目前为止我已经完成了这个并且它可以工作

CREATE TABLE employees(employee_ID int NOT NULL, name varchar(20) NOT NULL UNIQUE, 
                   PRIMARY KEY (employee_ID)
                  );
INSERT INTO employees VALUES(1, 'Adam Jones');
INSERT INTO employees VALUES(2, 'Amy Smith');
INSERT INTO employees VALUES(3, 'Anthony Wright');

CREATE TABLE department(department_ID varchar(20) NOT NULL, 
                    department_name varchar(20) NOT NULL, head_of_dep varchar(20), 
                    num_of_employees_in_dep int
                   );
INSERT INTO department VALUES('Bad At SQL Ltd', 'Need Help HQ', 'No One Yet', 3);

但我不明白为什么这不起作用

UPDATE department SET head_of_dep = name FROM employees WHERE employee_ID = 1

我做错了什么?

使用 SQLfiddle 和 MySQL 5.5.32

最佳答案

您需要将其重写为

UPDATE department SET head_of_dep = (SELECT name FROM employees WHERE employee_ID = 1)

因为您实际上必须SELECT该值

关于SQLfiddle 中的 MySQL UPDATE 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26549644/

相关文章:

c# - Entity Framework 4 从具有多个模式的模型生成数据库

mysql - 从单个表中选择每个公司一个用户

sql - 模式是否应该始终在 SQL 语句中显式定义?

mysql - 使用 MySQL 的 GROUP BY/HAVING 的替代方案

sql - SQLFiddle 中的 Oracle 用户定义函数

mysql - "PROJECT"SQL 数据库模拟器 (sqlfiddle) 中的语句不起作用

mysql - 试着数数我的数

mysql - 选择存储日期比当前日期至少早 x 天的记录

php - 不能在子查询中使用别名

mysql - MySQL INSERT for POST 方法的正文不正确