我正在尝试根据另一个表的条件将值插入到一个表中。不是基于忽略重复值。但我不断收到语法错误。不确定如何进行。
我想要实现的是,如果在一个独立的表中用户没有阻止当前用户,则只允许将用户添加到组中:
INSERT INTO users_to_groups(user_id, group_id)
VALUES (1,'A')
WHERE NOT EXISTS (SELECT * FROM users_to_users WHERE user_id_a=2 AND user_id_b=1 AND user_blocked=1);
编辑
我想一次插入多行
你可以这样做:
INSERT INTO users_to_groups(user_id, group_id)
SELECT x.user_id, x.group_id
FROM (SELECT 1 as user_id, 'A' as group_id) x
WHERE NOT EXISTS (SELECT 1
FROM users_to_users utu
WHERE utu.user_id_a = 2 AND
utu.user_id_b = 1 AND
utu.user_blocked = 1
);
我是一名优秀的程序员,十分优秀!