从表Group By中删除

时间:2017-11-15 06:15:52

标签: php mysql sql yii

SQL查询:

`SELECT * FROM `adl_auth_user` WHERE `user_id` = 1919`

结果是

id  user_id     type_id     type       auth_    role_id     
66428   1919     1                97    103     6

66429   1919    1                 97    104     6

66430   1919    1                 97    105     6

66431   1919    1                 97    106     6

当我添加分组时

SELECT * FROM `adl_auth_user` WHERE `user_id` = 1919 group by type,type_id

结果是

id  user_id     type_id     type    auth_item_id    role_id     

66428   1919    1   97                103             6

我不需要查询所有细节

`SELECT * FROM `adl_auth_user` WHERE `user_id` = 1919` (its simple)

如何删除以下

的表格详细信息
SELECT * FROM `adl_auth_user` WHERE `user_id` = 1919 group by type,type_id

注意:所有细节都经过编辑格式......

1 个答案:

答案 0 :(得分:0)

此查询:

DELETE adl_auth_user
FROM adl_auth_user
LEFT JOIN adl_auth_user t2 
   ON adl_auth_user.type_id = t2.type_id AND
      adl_auth_user.type = t2.type AND
      adl_auth_user.id > t2.id
WHERE adl_auth_user.user_id = 1919 AND t2.id IS NOT NULL

删除具有相同type_idtype值的所有记录,但具有最小 id值的记录除外。

Demo here