SQL 删除并加入 2 个?
SQL DELETE with 2 Joins?
我必须删除一个 table,其中禁用了用户。问题是,我最后必须使用 where 子句。这是最重要的一点,否则我无法测试我的查询。
where 子句很重要,因为没有它我会删除整个数据库,而不仅仅是禁用的用户。
DELETE a
FROM CONTENT_PERM a
JOIN user_mapping b
ON a.USERNAME = b.USER_KEY
(JOIN CWD_USER c
ON b.USERNAME = c.USER_NAME)
WHERE c.ACTIVE = 'F';
如果我没理解错的话,你不需要在 JOIN
中间插入 ()
DELETE a
FROM CONTENT_PERM a
JOIN user_mapping b
ON a.USERNAME = b.USER_KEY
JOIN CWD_USER c
ON b.USERNAME = c.USER_NAME
WHERE c.ACTIVE = 'F';
只需使用 Select 查询,只需删除删除并检查您是否得到正确的结果,然后根据结果您可以采取措施删除查询。
像下面这样。
Select a
FROM CONTENT_PERM a
JOIN user_mapping b
ON a.USERNAME = b.USER_KEY
JOIN CWD_USER c
ON b.USERNAME = c.USER_NAME
WHERE c.ACTIVE = 'F';
你可以试试下面
DELETE FROM CONTENT_PERM
WHERE USERNAME IN (SELECT USER_KEY FROM user_mapping WHERE USERNAME IN (SELECT USER_NAME
from CWD_USER where ACTIVE = 'F'));
我必须删除一个 table,其中禁用了用户。问题是,我最后必须使用 where 子句。这是最重要的一点,否则我无法测试我的查询。
where 子句很重要,因为没有它我会删除整个数据库,而不仅仅是禁用的用户。
DELETE a
FROM CONTENT_PERM a
JOIN user_mapping b
ON a.USERNAME = b.USER_KEY
(JOIN CWD_USER c
ON b.USERNAME = c.USER_NAME)
WHERE c.ACTIVE = 'F';
如果我没理解错的话,你不需要在 JOIN
中间插入()
DELETE a
FROM CONTENT_PERM a
JOIN user_mapping b
ON a.USERNAME = b.USER_KEY
JOIN CWD_USER c
ON b.USERNAME = c.USER_NAME
WHERE c.ACTIVE = 'F';
只需使用 Select 查询,只需删除删除并检查您是否得到正确的结果,然后根据结果您可以采取措施删除查询。 像下面这样。
Select a
FROM CONTENT_PERM a
JOIN user_mapping b
ON a.USERNAME = b.USER_KEY
JOIN CWD_USER c
ON b.USERNAME = c.USER_NAME
WHERE c.ACTIVE = 'F';
你可以试试下面
DELETE FROM CONTENT_PERM
WHERE USERNAME IN (SELECT USER_KEY FROM user_mapping WHERE USERNAME IN (SELECT USER_NAME
from CWD_USER where ACTIVE = 'F'));