x
CREATE TABLE messages (messageid INTEGER PRIMARY KEY
, message VARCHAR(150)
, sender VARCHAR(40)
, recipient VARCHAR(40))
CREATE TABLE employees (employeeid INTEGER PRIMARY KEY
, employeename VARCHAR(40)
, area VARCHAR(40))
My problem is that I don’t know a simple way of inserting a selection of employees from the employees table directly into the messages table like:
INSERT INTO messages (message
, sender
, recipient)
VALUES ("Message."
, "System"
, (SELECT employeename
FROM employees
WHERE area = "Maintenance"))
This returns the error: Error Code: 1242. Subquery returns more than 1 row
and I’m not sure on how to proceed from here.
Advertisement
Answer
Use insert . . . select
:
INSERT INTO messages (message, sender, recipient)
SELECT 'Message.', 'System', employeename
FROM employees
WHERE area = 'Maintenance';
Note that the values
keyword is not needed. I also replaced the double quotes with single quotes, because these are the SQL standard delimiter for strings.