Mam dwie tabele:
Kod
TABELA 1
+-------+-----------+----------+----------+
| id | owner | name | value |
+-------+-----------+----------+----------+
| 1 | 1 | obrazek | obraz.jpg|
| 2 | 1 | atrybut | jpeg |
| 3 | 1 | costam | wartosc |
| 4 | 2 | rekord | wartosc |
+-------+-----------+----------+----------+
TABELA 2
+-------+-----------+----------+----------+
| id | owner | name | value |
+-------+-----------+----------+----------+
| 1 | 1 | obrazek | obraz.jpg|
| 2 | 1 | atrybut | jpeg |
| 3 | 2 | costam | wartosc |
| 4 | 3 | rekord | wartosc |
| 5 | 4 | rekord2 | wartosc2 |
+-------+-----------+----------+----------+
Chcę teraz usunąć rekordy z obu tabeli, ale uwaga: Chcę usunąć wszystkie wpisy z pierwszej tabeli dla konkretnej wartości pola owner i wszystkie wpisy z drugiej tabeli, której owner jest identyczny z przynajmniej jednym z id z kasowanych rekordów. Brzmi to trochę zagmatwanie, więc wyjaśnimy sytuację:+-------+-----------+----------+----------+
| id | owner | name | value |
+-------+-----------+----------+----------+
| 1 | 1 | obrazek | obraz.jpg|
| 2 | 1 | atrybut | jpeg |
| 3 | 1 | costam | wartosc |
| 4 | 2 | rekord | wartosc |
+-------+-----------+----------+----------+
TABELA 2
+-------+-----------+----------+----------+
| id | owner | name | value |
+-------+-----------+----------+----------+
| 1 | 1 | obrazek | obraz.jpg|
| 2 | 1 | atrybut | jpeg |
| 3 | 2 | costam | wartosc |
| 4 | 3 | rekord | wartosc |
| 5 | 4 | rekord2 | wartosc2 |
+-------+-----------+----------+----------+
Kasuję rekordy o owner = 1:
Z pierwszej tabeli wylatują rekordy o id 1, 2, 3
Z drugiej tabeli wylatują rekordy o polu owner równym 1, 2, 3 (=wartości skasowanych id z pierwszej tabeli) - czyli pola o id 1, 2, 3, 4
W sumie kasuję 7 rekordów z dwóch tabel
O ile usuwanie z pierwszej tabeli to banał - polecenie
i po problemie. Ale z jednoczesnym kasowaniem z drugiej tabeli nie umiem sobie poradzić
DELETE FROM tabela1 WHERE owner=1