我想在我的表中插入新数据,条件是我从子查询here表中获得的条件:
权限
role_id permission_id
1 1
1 2
1 3
2 1
2 3
3 1
3 2
4 1因此,假设role_id是一组id,它们具有多个连接的权限id。所以我想插入权限id为2的新数据,它们是role_id 2和4
我想运行这个查询:
INSERT INTO PERMISSION
VALUES ('2', '2')
VALUES ('4', '2');在1个查询中,我尝试运行以下查询:
INSERT INTO permission(role_id, permission_id)
VALUES(
(select distinct(role_id) from role_permission rp2
where role_id NOT IN (
select role_id from role_permission rp
where permission_id = 2)),
2);但结果是它总是得到错误:
SQL Error [1242] [21000]: Subquery returns more than 1 row有没有办法用mysql插入带有1个值的多个查询?
发布于 2021-06-22 19:25:52
您的第一个查询缺少逗号并重复VALUES。我还建议列出这些列
INSERT INTO PERMISSION (role_id, permission_id)
VALUES ('2', '2'),
('4', '2');请注意,ids通常是数字。如果是这种情况,则删除单引号。
对于第二个查询,使用INSERT . . . SELECT“
INSERT INTO permission (role_id, permission_id)
select rp.role_id, 2
from role_permission rp
group by rp.role_id
having sum(rp.permission_id = 2) = 0;https://stackoverflow.com/questions/68082689
复制相似问题