'How to remove from few tables if data exist in each table?
I have 7 tables i need to remove data from all, but sometimes i don't have data in one of tables so the regular DELETE not working(return false)
DELETE `lead`.*, `wp_users`.*, `wp_sfmembers`.*, `wp_usermeta`.*,
`crm_notes`.*,`deposits`.*,`meta_accounts`.*
FROM `lead`, `wp_users`, `wp_sfmembers`,
`wp_usermeta`, `crm_notes`,
`deposits`, `meta_accounts`
WHERE
`wp_users`.`ID`=`lead`.`uid`
AND `wp_sfmembers`.`user_id`=`lead`.`uid`
AND `wp_usermeta`.`user_id`=`lead`.`uid`
AND `crm_notes`.`uid`=`lead`.`id`
AND `deposits`.`uid`=`lead`.`id`
AND `meta_accounts`.`uid`=`lead`.`id`
AND `lead`.`id`='89'
I tried to do with JOIN but it deletes me wrong data:
DELETE `l`.*
FROM `lead` as `l`
LEFT OUTER JOIN `wp_users` ON `wp_users`.`ID`=`l`.`uid`
LEFT OUTER JOIN `wp_sfmembers` ON `wp_sfmembers`.`user_id`=`l`.`uid`
LEFT OUTER JOIN `wp_usermeta` ON `wp_usermeta`.`user_id`=`l`.`uid`
LEFT OUTER JOIN `crm_notes` ON `crm_notes`.`uid`=`l`.`uid`
LEFT OUTER JOIN `deposits` ON `deposits`.`uid`=`l`.`id`
LEFT OUTER JOIN `meta_accounts` ON `meta_accounts`.`uid`=`l`.`id`
AND `l`.`id`='89'
Solution 1:[1]
Just run 7 separate delete queries instead of one complex one.
That's rule of the thumb: if you can't do something complex way - do it easy way. Easy ways always works.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Your Common Sense |
