我刚刚开始使用 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/