我有三個表,如table1,table2和table3。如何在mysql中使用select update和insert查詢
我想要做的是在table2中找到table1記錄,然後插入table3並更新table1中的標誌。
我怎樣才能使用MySQL。
我有三個表,如table1,table2和table3。如何在mysql中使用select update和insert查詢
我想要做的是在table2中找到table1記錄,然後插入table3並更新table1中的標誌。
我怎樣才能使用MySQL。
您無法在一個表中插入並更新單個sql語句中的另一個表。 但你至少有兩個選項:
它不是一個單一查詢,但使用存儲過程,你可以實現任務
創建一個程序(假設你有一個表2 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();
創建事務並做到這一點。這有什麼問題嗎? – Trying
你想/需要在單個查詢中完成所有操作嗎? (你的話題似乎暗示) – JScoobyCed
我期待這個使用單個查詢。 – vam