我一直在尝试使此查询正常工作,希望有人能给我一些建议。
我有两张桌子。大师和辅助。我需要使用基于groupid和section ID的aux而不是master的任何行来更新master。
我实际上需要对多个aux表执行此操作,但是只要我能弄清楚如何在一个辅助表上执行此操作,就可以在需要的每个表上手动运行查询。
到目前为止,我一直在尝试使用选择从aux中获取应插入主数据库的数据。一旦有了,我就可以对其进行修改以创建插入查询。(我希望)
select
a.id
from
master as m,
aux as a
where
a.gid = m.groupid
and
a.sid = m.sectionid
and
not in m.groupid
and
not in m.sectionid
此查询不起作用:(
主表
id groupid sectionid
1 A Group 21
2 A Group 23
3 B Group 55
4 C Group 999
5 D Group 52A
6 D Group 53
在桌子上
id gid sid
1 A Group 21
2 A Group 22
3 A Group 23
4 B Group 55
5 B Group 55A
6 C Group 999
7 D Group 52A
8 D Group 53
9 D Group 56
查询后的主表
id groupid sectionid
1 A Group 21
2 A Group 23
3 B Group 55
4 C Group 999
5 D Group 52A
6 D Group 53
7 A Group 22
8 B Group 55A
9 D Group 56
预先感谢您的任何帮助。
我认为这不是and not in m.groupid
有效的sql。not exist
具有子选择的A应该可以解决问题:
insert into master (groupid, sectionid)
select a.gid, a.sid
from aux as a
where not exists(
select *
from master as m
where m.groupid = a.gid
and a.sid = m.sectionid
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句