Удалить на основе отдельного выбора - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть запрос mysql, который возвращает довольно много разных, но правильных результатов

select distinct page_id, display_id
  from display_to_page;

Но сейчас я пытаюсь удалить все, что не входит в этот набор результатов (удаление дубликатов), ноЯ немного застрял.

Я знаю, что могу сделать что-то вроде:

delete from display_to_page dp
(select distinct page_id, display_id
    from display_to_page) dp2 ...

Но я не уверен, как завершить синтаксис там.

Как можноЯ структурирую удаление, которое удалит все, что не входит в этот набор результатов?

1 Ответ

0 голосов
/ 27 сентября 2018

Если у вас есть только два столбца в таблице, то, вероятно, самый простой способ - это усечь / перезагрузить:

create temporary table temp_pd as
    select distinct page_id, display_id
    from display_to_page;

truncate table display_to_page;

insert into display_to_page (page_id, display_id)
    select page_id, display_id
    from temp_pd;

Обязательно скопируйте таблицу, прежде чем пытаться это сделать с вашими данными!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...