Как удалить определенные данные из 2 столбцов - PullRequest
1 голос
/ 12 апреля 2020

У меня есть 2 таблицы в 1 базе данных. В двух таблицах есть несколько строк с одинаковым содержимым.

table visitor
--------------------------
id      |   mytoken1    |
--------------------------
1       |   token_abcd  |
2       |   token_efgh  |
3       |   token_ijkl  |
4       |   token_mnop  |
--------------------------

table favorites
--------------------------
id      |   mytoken2    |
--------------------------
1       |   token_abcd  |
2       |   token_efgh  |
3       |   token_ijkl  |
4       |   token_mnop  |
5       |   token_aaaa  |
6       |   token_bbbb  |
7       |   token_cccc  |
8       |   token_dddd  |
--------------------------

Как удалить столбец mytoken2, которого нет в столбце mytoken1? Итак, в приведенном выше примере я хочу удалить 4 строки данных, в том числе:

token_aaaa
token_bbbb
token_cccc
token_dddd

Я пытался найти решение, пока у меня не кружилась голова, но оно не было решено, я надеюсь, что кто-то поможет мне здесь ..

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Вы можете использовать NOT EXISTS.

DELETE FROM favorites
            WHERE NOT EXISTS (SELECT *
                                     FROM visitor
                                     WHERE visitor.mytoken1 = favorites.mytoken2);
0 голосов
/ 12 апреля 2020

Вы можете использовать NOT IN

DELETE FROM favorites
WHERE token2 NOT IN (SELECT token1 FROM visitor)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...