2013-02-22 17 views
7

Sprawdziłem odpowiedzi na pytania. Ale rozwiązania nie działają dla mnie.MYSQL - Usuń zapytanie z połączeniem

DELETE FROM TEST2 
INNER JOIN TEST1 on TEST1.FIELD2 = TEST2.FIELD2 
WHERE TEST1.FIELD1 = 22; 

Po wykonaniu tego zapytania, otrzymuję następujący błąd w phpmyadmin.

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version 
for the right syntax to use near 'INNER JOIN TEST1 on TEST1.FIELD2 = TEST2.FIELD2' at line 2 

Jestem zmęczony. Potrzebuję pomocy. Z góry dziękuję.

Odpowiedz

16

To powinno działać:

DELETE T 
FROM TEST2 T 
INNER JOIN TEST1 on TEST1.FIELD2 = T.FIELD2 
WHERE TEST1.FIELD1 = 22; 

Sample Fiddle Demo

myślę, że można także zrobić z IN:

DELETE FROM Test2 
WHERE Field2 IN (
    SELECT Field2 
    FROM Test1 
    WHERE Field1 = 22) 
+0

Dzięki sgeddes. Pierwsza odpowiedź działa dla mnie. – user2003356

+0

@ user2003356 - np, cieszę się, że mogłem pomóc! – sgeddes

+1

lepiej użyć pierwszego, ponieważ nie zajmie to dużo czasu, zamiast tego drugiego, ponieważ jest ono poprawne, pierwszą rzeczą będzie wykonanie pierwszej sekcji i zapisanie wyniku, a następnie wykonanie zapytanie pierwotne. –