我有两张这样的桌子:
user_users
ID ColA ColB
55 This That
56 Other Stuff
user_meta
ID UserID MetaName MetaValue
1 56 some_name some_value
2 56 other_name other_vaue
3 99 this_too equals_this
因此,在
用户元
表属于给定的
UserID
. 删除用户时,还需要删除
用户元
属于该用户的表。
以下是我的资料:
DELETE user_users, user_meta FROM user_users LEFT JOIN user_meta ON user_meta.UserID = user_users.ID WHERE user_users.ID = 56
在这些情况下,这将非常有用:
-
如果用户存在于
用户用户
但中不存在此用户的行
用户元
-
如果用户存在于
用户用户
中存在此用户的行
用户元
问题是,如果(出于某种原因)用户ID存在于
用户元
但不在
用户用户
,行不会从
用户元
表。
出于所有实际原因,此查询
应该
在所有情况下都可以工作(因为如何为不存在的用户保存用户meta?),但为了以防万一,我想确保查询还将删除
用户元
表与
用户标识
即使该用户不存在于
用户用户
表。
因此,我希望此查询删除
用户元
表与
UserID = 99
但是没有,因为没有
ID
其中99个存在于
用户用户
表:
DELETE user_users, user_meta FROM user_users LEFT JOIN user_meta ON user_meta.UserID = user_users.ID WHERE user_users.ID = 99
如何更新此查询以从其中一个/两个表中删除,而不管ID是否存在于另一个表中?