我有一个可用3个表格描述的场景;成员,角色和成员。 Memberrole是其他两个的交集,我想用外连接(来自成员和角色)完全填充它。这很容易。
现在我希望能够为新成员或新角色更新交集。
我想要完成的任务看起来像这样(但语法不正确):
insert into memberrole (memberid,roleid)
select member.memberid, role.roleid
from member, role
where member.memberid, roleid not exists (select memberid, roleid
from memberrole)
......有什么建议吗? 感谢
答案 0 :(得分:0)
INSERT into memberrole (memberid,roleid)
SELECT m.memberid, r.roleid
FROM member m
JOIN zrole r -- carthesian product MINUS the inner product
ON NOT EXISTS (select *
FROM memberrole mr
WHERE mr.memberid = m.memberid
AND mr.roleid = r.roleid
);
注意:role
是保留字。我将其替换为zrole
。