Mysql WHERE NOT EXISTS在尝试根据独立于另一个表的条件插入时不工作
我试图根据另一个表中的条件将值插入到一个表中。不基于忽略重复值。但我一直在犯语法错误。我不知道怎么继续 我想要实现的是,只有在独立表中的用户未阻止当前用户时,才允许将用户添加到组中:Mysql WHERE NOT EXISTS在尝试根据独立于另一个表的条件插入时不工作,mysql,sql,not-exists,Mysql,Sql,Not Exists,我试图根据另一个表中的条件将值插入到一个表中。不基于忽略重复值。但我一直在犯语法错误。我不知道怎么继续 我想要实现的是,只有在独立表中的用户未阻止当前用户时,才允许将用户添加到组中: 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_bloc
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
);
你可以做:
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
);
如果只想插入一行,可以按如下方式尝试:
INSERT INTO users_to_groups(user_id, group_id)
SELECT 1,'A'
FROM dual
WHERE NOT EXISTS
(SELECT * FROM users_to_users
WHERE user_id_a=2 AND user_id_b=1 AND
user_blocked=1);
如果要插入真正的查询结果,可以使用逻辑更改
SELECT
语句
例如:
INSERT INTO users_to_groups(user_id, group_id)
SELECT u.id,'A'
FROM users u
WHERE NOT EXISTS
(SELECT * FROM users_to_users
WHERE user_id_a=u.id AND user_id_b=1 AND
user_blocked=1);
但是您不能使用
插入到。。。值
具有其中
条件,因为存在语法错误如果要插入
仅一行,则可以按如下方式尝试:
INSERT INTO users_to_groups(user_id, group_id)
SELECT 1,'A'
FROM dual
WHERE NOT EXISTS
(SELECT * FROM users_to_users
WHERE user_id_a=2 AND user_id_b=1 AND
user_blocked=1);
如果要插入真正的查询结果,可以使用逻辑更改
SELECT
语句
例如:
INSERT INTO users_to_groups(user_id, group_id)
SELECT u.id,'A'
FROM users u
WHERE NOT EXISTS
(SELECT * FROM users_to_users
WHERE user_id_a=u.id AND user_id_b=1 AND
user_blocked=1);
但是您不能使用
插入到。。。值
带有WHERE
条件,因为您有语法错误WHERE不存在您可以在插入选择操作中使用插入选择我可以定义要插入的值吗?这些值正在定义中,并且当前不存在于不存在的表中。您可以在插入选择操作中使用插入选择我可以定义要插入的值吗?这些值正在定义中,当前不存在于表中。此语句一次可用于多行的多个值吗?@alionsego。我不确定。这回答了人们提出的问题。如果你还有另一个问题,你可能会考虑用适当的样本数据和期望的结果来询问另一个问题。这个语句将一次使用多个值的多个行吗?我不确定。这回答了人们提出的问题。如果你还有另外一个问题,你可以考虑用适当的样本数据和期望的结果来询问另一个问题。我试图在每次尝试插入多行时插入多行。