Удалить из таблицы после поиска в другой таблице - SQL - PullRequest
1 голос
/ 18 мая 2011

Hiii
У меня две таблицы

Invited

  • UID [pk]

Active

  • UID [pk]

Я хочу удалить UID из Invited, который присутствует в Active таблице
Могу ли я сделать это с помощью Joining, или единственный подход заключается в использованииNOT IN or IN?

Ответы [ 2 ]

4 голосов
/ 18 мая 2011

Да, вы можете использовать IN.

Delete From Invited where UID in (Select UID From Active)

Или вы можете использовать Join, если хотите

Delete i
From Invited as i
Join Active as a on i.UID = a.UID 
2 голосов
/ 18 мая 2011
DELETE FROM `Invited` WHERE Invited.UID IN ( SELECT UID FROM `Active`)

или, для улучшения производительности:

DELETE i FROM `Invited` AS i WHERE EXISTS ( SELECT 1 FROM `Active` WHERE Active.UID = i.UID )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...