MySQL中巢狀子查詢刪除出錯解決方案

2021-07-25 12:54:09 字數 546 閱讀 2325

mysql中巢狀子查詢做刪除操作會出錯,例如下面的sql:

delete from table1 where number in (select number from table2)

錯誤碼: 1093 

原因:所刪除表的在子查詢中出現,就會出錯,當然,此sql放到mssql中執行是沒有問題的。

為了解決此問題,可以建立一張臨時表,將子查詢的資料寫入到臨時表,然後做子查詢刪除即可。

當然,此處的臨時表並被真是真正意義的臨時表,是臨時建立乙個表,用完後再刪除。**如下:

drop table if exists tmp; 

create table tmp as (select number from table2);

delete from table1 where number in (select number from tmp);

drop table if exists tmp;

這樣就變相的實現了所要實現的功能。

MySQL4中巢狀子查詢刪除出錯解決方案

mysql4中巢狀子查詢做刪除操作會出錯,例如下面的sql delete from moviesparam where mpeg in select mp.mpeg from movies mv,moviesparam mp where mv.mpeg mp.mpeg 錯誤碼 1093 you ca...

Sql改造 Sql改造之巢狀子查詢

sql改造 sql 巢狀子查詢 select 別名1.列名1,別名1.列名2,rownum as rn from 原始sql select列名1,列名2,from 表名 where 1 1 order by update desc 別名1 where rownum 5 selec a.id,a.na...

巢狀子查詢時需要注意的問題

巢狀子查詢時需要注意的 1 乙個子查詢必須放在圓括號中 2 將子查詢放在比較條件的右邊以增加可讀性 3 子查詢不包含 order by 子句。對乙個 select 語句只能用乙個 order by 子句。4 order by 子句可以使用,並且在進行 top n 分析時是必須的,注意,如果指定了它就...