mam pewnie dosyć proste pytanie, bo wyczytałem że wszystko jest ok, testy potwierdzają, ale chcę mieć 100% pewności.
Chciałbym wykonać DELETE, jednak muszę dodatkowo użyć JOIN bo od drugiej tabeli zależy co będzie usuwane.
Przykład:
Kod
DELETE t1.* FROM tabela1 AS t1
INNER JOIN tabela2 AS t2 ON t1.poleX = t2.poleX
WHERE t1.poleY = 300 AND t2.poleZ IN (1,2,3,4,5)
INNER JOIN tabela2 AS t2 ON t1.poleX = t2.poleX
WHERE t1.poleY = 300 AND t2.poleZ IN (1,2,3,4,5)
poleX i poleY występują w obu tabelach, nazywają się tak samo.
Dane mają być usuwane tylko i wyłącznie z tabeli1, jednak w złączeniu z tabelą2 liczy się właśnie poleZ, gdzie jest zestaw w IN.
Sprawdzałem, wydaje się że wszystko gra, dane w tabela2 są nienaruszone, ale jak pisałem, chcę być w pełni pewny - czy takie coś nie zagraża danym z tabeli2?
Jak rozumiem, do usunięcia idzie tylko to co dokładnie podane (w moim wypadku t1.*), zaś złączenie nie ma tu znaczenia - jest wykorzystwane przy wyszukiwaniu danych do usunięcia, ale nie udziela się w samym usuwaniu.
Dobrze myślę, czy wymaga to korekty?