Советы по запросу на присоединение к MYSQL (удаление потерянных строк) - PullRequest
0 голосов
/ 30 марта 2012

У меня есть две таблицы следующим образом ..

campaigns(campaignID, title)
campaignMailList(campaignID, Sent)

(2 таблицы больше .. но для этой цели мне нужны только эти столбцы)

Я хочу создатьзапрос, который удалит все строки в campaignMailList, где он не может найти соединение в таблице кампаний по идентификатору кампании.

Кто-нибудь может подсказать, как мне это сделать?

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

Перевод слова за словом ваш собственный вопрос в SQL:

delete from campaingMailList where
campaingId not in (select campaingid from campaigns)
2 голосов
/ 30 марта 2012

Вы можете попробовать предложение NOT IN.Как

DELETE FROM `campaignMailList` as cml
WHERE cml.campaignid NOT IN ( SELECT campaignID FROM campaigns )

Не уверен, что это самый лучший способ сделать это

1 голос
/ 30 марта 2012

Попробуйте этот запрос -

DELETE cml FROM campaignMailList cml
  LEFT JOIN campaigns c
    ON c.campaignID = cml.campaignID
WHERE c.campaignID IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...