Задача для mysql

Статус
В этой теме нельзя размещать новые ответы.

Tretiy

Постоялец
Заблокирован
Регистрация
10 Дек 2007
Сообщения
81
Реакции
9
  • Автор темы
  • Заблокирован
  • #1
Есть очень большая база. Состоит из двух таблиц:
tabl1 id, name
tabl2 id, tabl1_id,name

Как мне удалить из таблицы tabl2 строки в котрых tabl1_id равен несуществующему id в tabl1
 
Есть очень большая база. Состоит из двух таблиц:
tabl1 id, name
tabl2 id, tabl1_id,name

Как мне удалить из таблицы tabl2 строки в котрых tabl1_id равен несуществующему id в tabl1

Посмотри когда и для чего применяется параметр в SELECT- EXIST.

А вообще, нужно накладывать на таблицы целостность, проверку целостности(ограничение целостности), создать первичные ключи и тд.. И тогда у тебя такой проблемы не будет.
 
DELETE FROM `tabl2` WHERE `tabl1_id` NOT IN (SELECT `id` FROM `tabl1` WHERE 1)
 
Есть очень большая база. Состоит из двух таблиц:
tabl1 id, name
tabl2 id, tabl1_id,name

Как мне удалить из таблицы tabl2 строки в котрых tabl1_id равен несуществующему id в tabl1

DELETE FROM `tabl2` WHERE `tabl1_id` NOT IN (SELECT `id` FROM `tabl1` WHERE 1)
 
вот еще вариант
DELETE FROM `tabl2` WHERE NOT EXISTS (
SELECT 1
FROM `tabl1`
WHERE tabl1_id = `tabl2`.id
)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху