sql – update z podzapytaniem

Tabela łącząca posiada wpisy powiązane z usuniętymi rekordami suits. Dla tych rekordów zerujemy klucz obcy.

 UPDATE ingredients_suits si SET suit_id = 0 WHERE NOT EXISTS (
        SELECT id FROM suits s WHERE s.id = si.suit_id
);

Można skasować rekordy tabeli łączącej które mają wyzerowany klucz obcy

DELETE FROM ingredients_suits WHERE suit_id=0;

MySQL Datediff()

Zwraca ilość dni pomiędzy dwoma datami lub znacznikami czasu

DATEDIFF( expr1, expr2 );
SELECT DATEDIFF( '2008-05-17 11:31:31','2008-04-28' ) ;

+----------------------------------------------+
| DATEDIFF('2008-05-17 11:31:31','2008-04-28') |
+----------------------------------------------+
|                                           19 | 
+----------------------------------------------+