![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Prosze o podpowiedź. Mam do zrealizowania zadanie zmiany wartości kolumny cena znajdującej się w tabeli prodct ale tylko w jednej kategorii (druga tabela ). Kategorie zapisane są w 2 tabeli o nazwie category nazwa kolumny id_category Potrzebuje zmienić ceny w kategori 3. Tworze zapytanie które jednak zmienia mi wszystkie ceny w całej bazie. update product SET product.cena =product.cena+5 WHERE category.id_category=3 Gdzie błąd ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 225 Pomógł: 18 Dołączył: 30.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jaki jest schemat bazy danych (relacji między tymi tabelami)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dokładnie o co chodzi gdzie to sprawdzę ?
Podpowie ktoś ? Szukam i nic nie mogę znaleźć |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym ze w tabeli product nie ma kolumny id_category
Jedyna kolumna która występuje w obu tabelach to product_id |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://dev.mysql.com/doc/refman/5.0/en/update.html
Masz tam napisane jak operować w update na kilku tabelach Cytat UPDATE items,month SET items.price=month.price Wystarczy, że dostosujesz do swoich tabel i dodasz jeszcze warunek na kategorie 3
WHERE items.id=month.id; |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za info. Będę testował
Zrobiłem tak ze dodalem to porownanie product_id i dodatkowy warunek ustalajacy kategorie
I to zadziałało. i teraz pytanie. Czy zawsze gdy chce zrobic update jednej tabeli w oparciu o dane z drugiej musze dokonac takiego porownania jak w przypadku product_id ? No i dlaczeog zapytanie
robi update dla wszystkich cen z kazdej kategorii. Tak łopatologicznie jeżeli mogę prosić (IMG:style_emoticons/default/smile.gif) Ten post edytował wrc1000 2.03.2012, 16:19:35 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Czy zawsze gdy chce zrobic update jednej tabeli w oparciu o dane z drugiej musze dokonac takiego porownania jak w przypadku product_id ? Nie, nie musisz. Teraz musiałeś bo jedno pole nazywało się category_id a tego mysql nie toleruje...... (IMG:style_emoticons/default/wink.gif) Oczywiście że musisz. Cytat robi update dla wszystkich cen z kazdej kategorii. Bo nie zrobiłeś powiązania miedzy tabelami.Zrób sobie select z dwóch dabel bez powiązania ich w where a zobaczysz ze dostaniesz zdecydowanie wiecej danych niż oczekiwales. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
no tak (IMG:style_emoticons/default/smile.gif) dzieki
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 14:13 |