Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykonanie zapytania MySql...
Forum PHP.pl > Forum > Bazy danych > MySQL
skubi23t
Witam!
Czy ktoś może mi powiedzieć dlaczego wykonywane przeze mnie oba zapytania wyrzucają błąd?

Przykład1:

  1. DELETE
  2. FROM `nuke_bbposts` p
  3. LEFT JOIN `nuke_bbposts_text` pt
  4. ON p.post_id = pt.post_id
  5. WHERE pt.`post_id` IS NULL;


Wyskakuje:

  1. Błąd
  2.  
  3. zapytanie SQL:
  4.  
  5. DELETE FROM `nuke_bbposts` p LEFT JOIN `nuke_bbposts_text` pt ON p.post_id = pt.post_id WHERE pt.`post_id` IS NULL
  6.  
  7. MySQL zwrócił komunikat: Dokumentacja
  8. #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 'p
  9. LEFT JOIN `nuke_bbposts_text` pt
  10. ON p.post_id = pt.post_id
  11. WHERE pt.`post_i' at line 2



Natomiast przy:

  1. DELETE
  2. FROM nuke_bbposts AS p
  3. LEFT JOIN nuke_bbposts_text AS pt
  4. ON p.post_id = pt.post_id
  5. WHERE pt.post_id IS NULL;


Wywala:

  1. Błąd
  2.  
  3. zapytanie SQL:
  4.  
  5. DELETE FROM nuke_bbposts AS p LEFT JOIN nuke_bbposts_text AS pt ON p.post_id = pt.post_id WHERE pt.post_id IS NULL
  6.  
  7. MySQL zwrócił komunikat: Dokumentacja
  8. #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 'AS p
  9. LEFT JOIN nuke_bbposts_text AS pt
  10. ON p.post_id = pt.post_id
  11. WHERE pt.pos' at line 2



Jak poprawnie wykonać pokazane wyżej zapytanie? :/
wookieb
http://dev.mysql.com/doc/refman/5.0/en/delete.html Dokładnie przyjrzyj się dokumentacji. Na dole masz dobre przykłady.
skubi23t
Sorry ale nic mi to kompletnie nie mówi, te zapytania otrzymałem od pewnego człowieka który pomaga mi w naprawie forum, ale ciężko się z nim skontaktować i pomyślałem, że zapytam tutaj...
wookieb
Musisz powiedzieć mysqlowi z której tabeli ma usunac rekordy. A ty tego nie powiedziałeś. Ny TEŻ nie wiemy z której tabeli chcesz usunąć dane więc spójrz w manual i zobacz różnicę pomiędzy twoim zapytaniem a przykładem.
skubi23t
A tak zapytam, czy to zapytanie:

  1. DELETE
  2. p.* FROM nuke_bbposts p
  3. LEFT JOIN nuke_bbposts_text t ON p.post_id = t.post_id
  4. WHERE t.post_id IS NULL;


będzie miało takie samo działanie jak te wyżej?
nospor
no nie. te zapytanie zadziala i usunie rekordy. tamto nie zadziala i rekordow nie usunie, wiec sam widzisz ze dzialanie bedzie mialo inne winksmiley.jpg

A juz tak powazniej; jesli twoim zamiarem bylo usunięcie danych z tabeli p to tak
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.