SQLite: удалить результаты из SELECT с исключением, кроме - PullRequest
2 голосов
/ 30 сентября 2010

У меня есть две таблицы: Feeds и Import в БД SQLite. Я вытягиваю все вложения из списка RSS-каналов в таблицу импорта; большинство из которых также есть в таблице Feeds. Я пытаюсь удалить записи из таблицы Feeds, где вложений нет в таблице импорта, потому что они больше не находятся в rssfeeds и были загружены. В основном это моя установка:

TABLE Feeds
    id (TEXT)
    url (TEXT)
    downloaded (BIT)

TABLE Import
    id (TEXT)
    url (TEXT)

# results to delete
(SELECT id,url FROM Feeds WHERE downloaded = 1 EXCEPT SELECT id,url FROM Import)

Я, наверное, слишком обдумываю это и усложняю, чем на самом деле.

Ответы [ 2 ]

5 голосов
/ 30 сентября 2010
DELETE
  FROM Feeds
 WHERE downloaded = 1
   AND NOT EXISTS (
          SELECT *
            FROM Import b
           WHERE Feeds.id = b.id
             AND Feeds.url = b.url )
0 голосов
/ 30 сентября 2010
DELETE
  FROM Feeds
 WHERE downloaded = 1
   AND NOT EXISTS (SELECT 1 FROM Import WHERE id = Feeds.id AND url = Feeds.url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...