Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Update wiersza w oparciu o 2 tabele
Zwariowany
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


Witam. Mam dwie tabele users i zdjecia. Chciałbym zaktualizować jedną z nich, ale WHERE ma sprawdzać dwie tabele

[SQL] pobierz, plaintext
  1.  
  2. UPDATE `users` SET
  3. `name` = 'ja'
  4. WHERE `users`.`id` = '5'  AND `zdjecia`.`kogo` = '5' LIMIT 1
  5.  
  6.  
[SQL] pobierz, plaintext

Takie zapytanie. Ma updatować jeden wiersz w jednej tabeli, ale sprawdzać warunek w dwóch tabelach.
Niestety to rozwiązanie mi nie działa, może ktoś mi powie dlaczego? ;d

Ten post edytował Zwariowany 2.01.2010, 15:00:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Brakuje ci apostrofu przy pierwszej 5. Możesz też spróbować usunąć te ciapki i zostawić same apostrofy.
Go to the top of the page
+Quote Post
Zwariowany
post
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


To mój błąd te apostrofy. Usunięcie tych "ciapków" nic nie da, błąd się pojawia taki:

Unknown column 'zdjecia.kogo' in 'where clause'

Go to the top of the page
+Quote Post
Max Damage
post
Post #4





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


  1. UPDATE users LEFT JOIN zdjecia ON users.id = zdjecia.id_user SET users.name = 'ja' WHERE users.id = '5' AND zdjecia.kogo = '5' LIMIT 1
  2.  
Go to the top of the page
+Quote Post
Pawel_W
post
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


hmm a możesz mi powiedzieć po co jest to `zdjecia`.`kogo` ? przecież to nie jest w żaden sposób powiązane z drugą tabelą...
Go to the top of the page
+Quote Post
kusiu
post
Post #6





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Cytat(Zwariowany @ 2.01.2010, 14:55:33 ) *
Witam. Mam dwie tabele users i zdjecia. Chciałbym zaktualizować jedną z nich, ale WHERE ma sprawdzać dwie tabele

[SQL] pobierz, plaintext
  1.  
  2. UPDATE `users` SET
  3. `name` = 'ja'
  4. WHERE `users`.`id` = '5'  AND `zdjecia`.`kogo` = '5' LIMIT 1
  5.  
  6.  
[SQL] pobierz, plaintext

Takie zapytanie. Ma updatować jeden wiersz w jednej tabeli, ale sprawdzać warunek w dwóch tabelach.
Niestety to rozwiązanie mi nie działa, może ktoś mi powie dlaczego? ;d


Po pierwsze olej `, jak byś pisał w SQLu dłuższe zapytania to pisząc ten znak byś się nieźle spocił, szkoda czasu po prostu. Po drugie jeśli w zapytaniu wpisujesz liczbę INTEGER to nie musisz ją umieszczać w apostrofie.

Pawel_W a czy musi być zdjecia.kogo powiązane z drugą tabelą? Przecież 2 tabele mają wspólny klucz users.id = zdjecia.id_user, to wystarczy zdjecia.kogo sa brane w WHERE przy update

Ten post edytował kusiu 3.01.2010, 00:46:47
Go to the top of the page
+Quote Post
Pawel_W
post
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(kusiu @ 3.01.2010, 00:29:46 ) *
Po pierwsze olej `, jak byś pisał w SQLu dłuższe zapytania to pisząc ten znak byś się nieźle spocił, szkoda czasu po prostu. Po drugie jeśli w zapytaniu wpisujesz liczbę INTEGER to nie musisz ją umieszczać w apostrofie.

Pawel_W a czy musi być zdjecia.kogo powiązane z drugą tabelą? Przecież 2 tabele mają wspólny klucz users.id = zdjecia.id_user, to wystarczy zdjecia.kogo sa brane w WHERE przy update

dobra, ale to `zdjecia`.`kogo` jest niepotrzebne, bo przecież robisz update do `users` ...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 15:45