我现在很难受输入时,我有很多相同的表字段例子:
---------------------------------<br/>
| id_pr | id_pro | id_cat |
<br/>---------------------------------<br/>
| 1001 | 002 | 103 |
<br/>---------------------------------<br/>
| 1002 | 003 | 104 |
<br/>---------------------------------<br/>
| 1003 | 004 | 103 |
<br/>---------------------------------<br/>
id_cat字段具有相同的数据,即103如何删除相同的103个数据字段中的一个,以及何时删除数据
--------------------
| 1003 | 004 | 103 |
--------------------
也删除了,如何输入sql查询?
你能帮我吗
您应该这样使用exists
:
Delete from your_table t
Where exists
(Select 1 from your_table tt
Where t.id_cat = tt.id_cat
And t.id_par > tt.id_par);
您可以在聚合查询中使用join
保留最小的id:
delete t
from t join
(select id_cat, min(id_pr) as min_id_pr
from t
group by id_cat
having count(*) > 1
) tt
on t.id_cat = tt.id_cat and t.id_pr > tt.min_id_pr