/ / Błąd składni przy usuwaniu wielu tabel - mysql, sql

Błąd składni przy usuwaniu wielu tabel - mysql, sql

Kiedy uruchomię to:

DELETE FROM folders AS fo
LEFT OUTER JOIN files AS fi
ON fo.folderId = fi.folderId
WHERE fi.folderId IS NULL AND (fo.folderId IN (63,1000))

... Dostaję błąd składniowy:

# 1064 - Masz błąd w składni SQL;sprawdź instrukcję, która odpowiada twojej wersji serwera MySQL dla właściwej składni do użycia w pobliżu "AS LEFT OUTER JOIN files AS FI ON fo.folderId = fi.folderId GDZIE sfinał "w linii 1

Kod jest oparty na SELECT zapytanie zwracające zamierzone wiersze. Jaki jest powód komunikatu o błędzie?

Odpowiedzi:

1 dla odpowiedzi № 1

Nie jest zaskoczeniem, że "nie działa". Kiedy uruchamiam twój kod, otrzymuję błąd składniowy:

Błąd SQL (1064): Wystąpił błąd w składni SQL; Sprawdź instrukcja, która odpowiada twojej wersji serwera MySQL po prawej stronie Składnia do użycia w pobliżu plików AS LEWEJ ZEWNĘTRZNEGO ZAŁĄCZAJ do fo.folderId = fi.folderId WHERE fi.fold "w linii 1

The poprawna składnia jest:

DELETE fo -- Note I"ve added table name
FROM folders AS fo
LEFT OUTER JOIN files AS fi
ON fo.folderId = fi.folderId
WHERE fi.folderId IS NULL AND (fo.folderId IN (63,1000));

1 dla odpowiedzi nr 2
DELETE
FROM folders fo
WHERE NOT EXISTS (SELECT 1
FROM files fi
WHERE fi.folderId = fo.folderId)
AND fo.folderId IN (63, 1000)