Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wykonanie zapytania MySql...
skubi23t
post 11.09.2009, 10:21:01
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2009

Ostrzeżenie: (0%)
-----


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? :/
Go to the top of the page
+Quote Post
wookieb
post 11.09.2009, 10:25:48
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://dev.mysql.com/doc/refman/5.0/en/delete.html Dokładnie przyjrzyj się dokumentacji. Na dole masz dobre przykłady.


--------------------
Go to the top of the page
+Quote Post
skubi23t
post 11.09.2009, 10:31:14
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2009

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
wookieb
post 11.09.2009, 10:33:44
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.


--------------------
Go to the top of the page
+Quote Post
skubi23t
post 11.09.2009, 10:46:50
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2009

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
nospor
post 11.09.2009, 10:48:36
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:51