OK, so from what I can tell, the left join returns all Ads where there is no
corresponding uid in Members, yes?
 
(side note, try a foreign key with a cascading constraint to stop this from
happening again).
 
How about:
 
DELETE FROM Ads where uid NOT IN (SELECT uid 
FROM Members)
 
Try it as a select first to confirm it selects the right ones.

 
  _____  

From: Johnny Le
Sent: Sat 9/04/2005 10:26
To: CF-Talk
Subject: SQL question



Hi, 

My database is a mess.  The programmer who did this didn't delete all the
user related records once the users deleted their accounts.  So I am trying
to clean up.  I need to delete all records from the result of this select
statement:

SELECT a.uid 
FROM Ads a LEFT JOIN Members m 
ON (a.uid=m.uid) 
WHERE m.uid IS NULL 

How do I do that?  I tried: 
DELETE FROM Ads where uid IN (SELECT a.uid 
FROM Ads a LEFT JOIN Members m 
ON (a.uid=m.uid) 
WHERE m.uid IS NULL) 

but that didn't work. 

Johnny 



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Logware (www.logware.us): a new and convenient web-based time tracking 
application. Start tracking and documenting hours spent on a project or with a 
client with Logware today. Try it for free with a 15 day trial account.
http://www.houseoffusion.com/banners/view.cfm?bannerid=67

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:202092
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to