SQL Delete Query - PullRequest
       1

SQL Delete Query

0 голосов
/ 08 июня 2010

Мне нужно написать сценарий SQL, который выбирает одну запись в таблице table1, а затем выполняет поиск в оставшихся таблицах базы данных. Если он не находит запись, мне нужно удалить запись из таблицы1. Кто-нибудь предоставляет пример сценария?

Ответы [ 4 ]

3 голосов
/ 08 июня 2010

Один пример

delete table1
where not exists (select 1 
                   from Table2 
                   where table1.SomeColumn = Table2.SomeColumn)
AND table1.SomeColumn = 5 --just an example, 

Оставьте И, если вы хотите удалить все строки из таблицы 1, которые не существуют в таблице 2

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

2 голосов
/ 08 июня 2010

Я сделал такие вещи:

DELETE table1
  FROM table1
 WHERE table1.ID NOT IN (
       SELECT RefID FROM Table2
       UNION
       SELECT RefID FROM Table3
       ...
       )

Предполагая, что RefID являются FK для table1.ID. Это то, что вам нужно?

1 голос
/ 08 июня 2010

Очень обычно (так как вы дали мало деталей)

Delete Table1 t1
Where [Criteria to find table1 Record]
  And Not Exists(Select * From Table2
                 Where pk = t1.Pk)
  And Not Exists(Select * From Table3
                 Where pk = t1.Pk)
  And Not Exists(Select * From Table4
                 Where pk = t1.Pk)
  ... etc. for all other tables
1 голос
/ 08 июня 2010
DELETE FROM Table1 WHERE id=10 AND NOT EXISTS (SELECT * FROM Table2 WHERE id=10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...