Мне нужно написать SQL-скрипт, который выбирает одну запись в таблице1, а затем выполняет поиск в остальных таблицах в базе данных. Если он не находит запись, мне нужно удалить запись из таблицы1. Кто-нибудь предоставляет некоторый образец сценария?SQL Delete Query
ответ
Одним из примеров
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
я сделал что-то вроде этого:
DELETE table1
FROM table1
WHERE table1.ID NOT IN (
SELECT RefID FROM Table2
UNION
SELECT RefID FROM Table3
...
)
Предполагая, что RefID являются FK, чтобы table1.ID. Это то, что тебе надо?
Это будет хорошо работать, если вы проверите несколько таблиц. Конечно, я сделал бы это «UNION ALL». –
DELETE FROM Table1 WHERE id=10 AND NOT EXISTS (SELECT * FROM Table2 WHERE id=10);
Очень общо, (так как вы дали мало деталей)
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
@VeeArr: У нас есть база данных, которая очистила записи из всех таблиц на основе временной метки даты, но есть одна таблица, у которой нет метки времени даты. Мне нужно удалить записи отсюда, которые больше нигде не существуют. @HLGEM: Мне не нужно делать одну запись за раз, но я просто хотел получить базовый скрипт. Я выполнил выбор и удаление, где существуют записи, но не наоборот. Есть приблизительно 10 таблиц, которые я просматриваю. @ Мартин Смит: Да. – jerle78
- 1. SQL Delete Query --- подробнее
- 2. SELECT (с LEFT JOIN) sql query, чтобы DELETE sql query
- 3. issue in delete query
- 4. DELETE query over multiple tables
- 5. malformed sparql delete query
- 6. MS Access delete Query
- 7. Doctrine query delete
- 8. delete query (Mysql, Php)
- 9. Отмена Delete Query
- 10. Mysqli delete query
- 11. mysqli query delete
- 12. MySQL Query Проблема с Delete Query
- 13. DELETE команда SQL
- 14. DELETE строки - Sql C#
- 15. delete query with like and concatenate
- 16. MYSQL Join Query not delete
- 17. Query withTrash, soft delete laravel
- 18. num_rows on delete query codeigniter
- 19. Malformed QUERY: Обнаружен " "удалить"" DELETE
- 20. Wordpress delete query not woking
- 21. My Delete Query не работает
- 22. MySql Query Select Then Delete
- 23. Lucene Multiple delete query (JSON)
- 24. Ebean: delete with Query object
- 25. Sql DELETE deadlock
- 26. SQL DELETE with JOIN
- 27. MySQL - UPDATE и DELETE QUERY не работают
- 28. mysql delete query with sub query not working
- 29. SQL Lite Trigger Query
- 30. SQL Query self query
Можете ли вы предоставить более конкретное объяснение того, что вы пытаетесь сделать? – VeeArr
Зачем вам делать такую вещь по одной записи за раз? – HLGEM
Является ли конечная цель удалять все записи в таблице1, у которых нет соответствующей записи? –