2010-05-25 6 views
1

J'ai une base de données avec une seule table ci-dessous:MySQL SUPPRIMER dans une seule table

userurltag(id,userID(string),Url(String),tag(String)) 

Je veux supprimer les utilisateurs qui ont moins de 3 urls qui leur sont associés. Comment puis-je faire cela?

Répondre

2

Essayez celui-ci:

DELETE 
    FROM userurltag USING userurltag 
    JOIN 
     (SELECT userID 
     FROM userurltag 
     GROUP BY userID HAVING COUNT(*) < 3) as tmp 
ON userurltag.userID = tmp.userID; 
+1

Remplacer "user_id" avec "userid" et "t.userid" avec "userurltag.userid" et cela devrait fonctionner. –

+0

@Ike Walker: vous avez raison, j'ai joué avec une structure de table légèrement différente et je n'ai pas modifié la requête complètement =) – newtover

0
DELETE 
FROM userurltag 
WHERE UserID IN 
(SELECT UserID FROM userurltag GROUP BY userID Having COUNT(UserID) < 3) 
Questions connexes