MYSQL使用2列将一个表的值更新为另一个表限定的值

布莱恩·亚历山大(Brianne Alexander)

我一直在尝试使此查询正常工作,希望有人能给我一些建议。

我有两张桌子。大师和辅助。我需要使用基于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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用MySQL中的rand()将表中的值更新到另一个表

使用另一个表中的值更新一个表上的列

使用另一个表的值更新表

如果id在另一个表中,则使用值更新MySQL更新列

SQL-使用另一个表的列的值更新列的值

将表中的SQL Spark Pyspark更新值更新为表中的另一个值

mysql从另一个表更新列值

如何使用 MySql 使用另一个表中的值更新两个表上的值

mysql根据另一个3列值更新同一表中一列的值

如何用另一个表中的另一个值更新mysql列?

使用另一个表的列中的值更新表的列

使用另一个表中的值更新ms-access表中的值

根据mysql中另一个表中的值更新一个表中的列

使用来自另一个表的值更新PHP MYSQL中的表

将 null 更新为一个值并插入到另一个表

使用另一个表中重复的值更新 Oracle 表中的列

从另一个表更新MySQL表值

使用updateAll()使用同一表的另一个列值更新表列

使用来自另一个表的汇总值更新一个表的多个列

Mysql:如何将表字段更新为从另一个表获取的值

基于另一个表(4个表)在mysql上的值更新表

SQL Server查询以另一个表值更新一个表列值

从另一个表 SQL 的值更新列值

使用MySQL根据另一个表中的列数更新列中的值

使用SQLite使用来自另一个表的值更新列?

使用另一个表中的值更新记录-MySQL(Python)

如何使用另一个表中的值更新特定列

如何使用另一个表中的值更新 PostgreSQL 上的多个列

使用 MySQL AFTER UPDATE 触发器根据 INT 值更改更新另一个表中的列