2

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

4

1 回答 1

2

您需要将其重写为

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

因为你实际上必须SELECT价值

于 2014-10-24T14:13:20.063 回答