Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]SELECT i UPDATE 3 tabel
infer
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 4.02.2010

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


Witam.

Zatkałem się zw temacie.

Mam trzy tabele, tak wygląda SELECT:

  1. SELECT
  2. produkty.id , produkty.nazwa
  3. FROM produkty
  4. LEFT JOIN kategorie ON produkty.prod_kat = kategorie.id
  5. LEFT JOIN comparisions ON comparisions.prod_id = produkty.id
  6. WHERE kategorie.kat_glowna = 1168


zapytanie wyświetla to co ma wyświetlać, czyli nazwy i ID produktów ze wszystkich podkategorii wchodzących do kategorii głównej 1168.

Chciałbym teraz zastosować UPDATE dla produktów spełniających powyższe kryterium , a więc


ZAPYTANIE 1) - wywala błąd
  1. UPDATE comparisions
  2. LEFT JOIN kategorie ON produkty.prod_kat = kategorie.id
  3. LEFT JOIN comparisions ON comparisions.prod_id = produkty.id
  4. SET abcd = 5
  5. WHERE kategorie.kat_glowna = 1168



UPDATE do dwóch tabel działa ok , a wygląda tak :

ZAPYTANIE 2)
  1. UPDATE comparisions
  2. LEFT JOIN produkty ON comparisions.prod_id = produkty.id
  3. SET abcd = 5
  4. WHERE produkty.prod_kat >= 1171 OR produkty.prod_kat <= 1179


Generalnie zapytanie nr 1 powinno dawać ten same rezultat co zapytanie nr 2 , ale będzie łatwiejsze w "obsłudze" bo wystarczy podać tylko id kategorii głównej i już ( nie trzeba pilnować , żeby wpisać właściwy przedział ). Prosiłbym o naprowadzenie na właściwy trop.

Dzięki

Ten post edytował infer 2.10.2012, 22:33:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://dev.mysql.com/doc/refman/5.0/en/update.html widzisz gdzieś tutaj joina w skladni (IMG:style_emoticons/default/questionmark.gif)
Odczytujesz i jedziesz w pętli albo
  1. UPDATE tabela SET columna = "value" WHERE id IN (...)

albo w pętli no ale to ile wyników tyle zapytań
Go to the top of the page
+Quote Post
viking
post
Post #3





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Cytat(skowron-line @ 3.10.2012, 03:07:36 ) *


Tak formalnie tylko:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference

I dalej podążając linkami:

table_reference:
table_factor
| join_table
A table reference is also known as a join expression.


ZAPYTANIE 1) - wywala błąd
Jaki to błąd?

Ten post edytował viking 3.10.2012, 05:51:55
Go to the top of the page
+Quote Post

Posty w temacie


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: 22.08.2025 - 14:41