First i have a table users:
id | name | lastname | username |
---|---|---|---|
1 | John | Doe | mr44 |
Then i have a table comments, user_id
is a FOREIGN KEY
of users table
id | user_id |
---|---|
1 | 1 |
I am inserting the user_id
with the following query:
INSERT INTO comments(user_id)
VALUES ((SELECT id FROM users WHERE username = "mr44"));
What i want to do now is insert the user_id only if it doesn't exist.
I tried something like this but it didn't work:
INSERT INTO comments(user_id)
VALUES (
(SELECT id FROM users WHERE username = "mr44")
WHERE NOT EXISTS (SELECT * FROM comments
WHERE user_id = 1 LIMIT 1)
);
CodePudding user response:
I managed to found an answer that works
INSERT IGNORE INTO comments (user_id)
SELECT * FROM (SELECT id from users WHERE username = "mr44") AS temp
WHERE NOT EXISTS (
SELECT user_id FROM comments WHERE user_id = 19
) LIMIT 1;