2013-10-30 61 views
-1

我有三個表,如table1,table2和table3。如何在mysql中使用select update和insert查詢

我想要做的是在table2中找到table1記錄,然後插入table3並更新table1中的標誌。

我怎樣才能使用MySQL。

+0

創建事務並做到這一點。這有什麼問題嗎? – Trying

+0

你想/需要在單個查詢中完成所有操作嗎? (你的話題似乎暗示) – JScoobyCed

+0

我期待這個使用單個查詢。 – vam

回答

0

您無法在一個表中插入並更新單個sql語句中的另一個表。 但你至少有兩個選項:

  1. 使用事務(包括插入到表3和更新表1)
  2. 上插入使用上表3觸發器(updat表
1

它不是一個單一查詢,但使用存儲過程,你可以實現任務

創建一個程序(假設你有一個表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(); 
+0

humm我期待它使用單個查詢,但是好吧,我將與您的解決方案一起去,因爲 – vam

+0

對於單個查詢是不可能的!另一種選擇是交易 – shiva

相關問題