Значение MySQL UPDATE в 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

1 ответ

Решение

Вам нужно переписать его

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

потому что вы на самом деле должны SELECT Значение

Другие вопросы по тегам