我有三个表,如 table1、table2 和 table3。
我想要做的是,如果在 table2 中找到 table1 记录,然后在 table3 中插入并更新 table1 中的标志。
我如何使用 MySQL 来做到这一点。
我有三个表,如 table1、table2 和 table3。
我想要做的是,如果在 table2 中找到 table1 记录,然后在 table3 中插入并更新 table1 中的标志。
我如何使用 MySQL 来做到这一点。
它不是单个查询,但是使用存储过程可以完成任务
创建一个过程(假设您在 table2 中有一个 foreign_key)
delimiter //
create procedure my_proc()
begin
select @a := (select GROUP_CONCAT(t1.id) from table1 t1 left outer join table2 t2 on t1.id != t2.foreign_key);
insert into table3 select * from table1 where FIND_IN_SET(id,@a);
update table1 set flag=1 where FIND_IN_SET(id,@a);
end//
并称它为
delimiter ;
call my_proc();
您无法在单个 sql 语句中插入一个表并更新另一个表。但你至少有两个选择: