Помогите составить запрос ( mysql )

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

tarantas

Постоялец
Регистрация
22 Мар 2008
Сообщения
75
Реакции
14
mysql 4

Есть 2 таблицы : posts и topics.
В posts есть поле topic_id , а в topics - tid.

Нужно удались ряды из posts, в которых в столбце topic_id указан несуществующий topics.tid

Вроде понятно описал.

Помогите составить запрос.
Спасибо.
 
Код:
DELETE
	p
FROM
	posts p
	LEFT JOIN topics t ON(p.topic_id = t.id)
WHERE
	t.id IS NULL
;
 
Либо
Код:
DELETE p 
from posts p
where not exists (select 1 from topics t where p.topic_id = t.id)
Возможно это будет быстрее работать.
 
Не сочтите занудой, но вам бы лучше Foreign key использовать. В topics сделайте primary key на tid, в posts - foreign key, тогда проблема исчезает сама собой...
 
не факт, что у ТС InnoDB используется.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху