/ / Usuń z dwóch tabel z łączeniem? - mysql

Usunąć z dwóch tabel z łączeniem? - mysql

Mam dwie tabele w następujący sposób

tbl1              tbl2
id                article_id
title,            image
whole_news
tags,
author,
older (datetime)

gdzie tbl1.id -> tbl2.article_id

Jak usunąć rekordy z obu tabel, w których starsze są <2008-02-10 00:00:00?

Odpowiedzi:

9 dla odpowiedzi № 1

Zobacz moją odpowiedź na podobne pytanie tutaj.

Podsumowując, będzie wyglądać

 delete s, r from tbl1 s left join tbl2 r on s.id = r.article_id where s.older < str_to_date("2008-02-10 00:00:00", "%Y-%m-%d %H:%i:%S");

Ale lepszym rozwiązaniem byłoby ograniczenie klucza obcego z kaskadą usuwania, jeśli jest to opcja, a następnie usunięcie z tbl1 z odpowiednią klauzulą ​​where.


0 dla odpowiedzi nr 2

Możesz użyć wyzwalacze


0 dla odpowiedzi № 3

Najprostszy sposób: Powinieneś używać FOREIGN KEYS WITH ON DELETE CASCADE.