Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SELECT i INSERT jednoczesnie, Wynik z 2 tabel zapisywany do jednej z nich ...
ALF666
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2003

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


Dobrzy ludzie pomooooocy biggrin.gif

Są 2 tabele w bazie danych. 1-sza to tabela z prestashop ps_category_lang [ z tej tabeli interesują mnie pozycje id_category oraz name ]
2-ga tabela to stworzona przeze mnie ps_category_names [ ma 3 kolumny ID (auto-increment), grupa_towarowa, nazwa_grupy ] i teraz zaczyna się mój problem. Pozycje z kolumny grupa_towarowa odpowiadają id_category z 1-szej tabeli, do nich przyporządkowane są odpowiednie nazwy które mieszczą się w kolumnie name .... o ile wylistowanie tego wyniku wiem jak zrobić to nie mam bladego pojęcia jak wynik zapytania zapisać w 2-giej tabeli w kolumnie nazwa_grupy
tak wygląda moje zapytanie ... pomoże ktoś dokończyć je tak by wynik zapisywał się w "locie" ?

  1. SELECT
  2. ps_category_lang.`name`,
  3. ps_category_lang.id_category,
  4. ps_category_names.grupa_towarowa
  5. FROM
  6. ps_category_lang ,
  7. ps_category_names
  8. WHERE
  9. ps_category_lang.id_category = ps_category_names.grupa_towarowa


Jakieś pomysły na rozwiązanie problemu ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
maly_swd
post
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


INSERT into tabela (SELECT ... FROM )


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
ALF666
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2003

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


No dobra ... domyślam się, że nawiasy są w tym wyrażeniu kluczowym punktem biggrin.gif ...
pytanie ... brzmi czy INSERT into tabela1.kol2 (SELECT tabela2.kol1, tabela2.kol4, tabela1.kol1 ..... .... i w tym momencie już się pogubiłem sad.gif
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Nie, zajżyj do manuala MySQL to się dowiesz.
Go to the top of the page
+Quote Post
ALF666
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2003

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


Pyton_000 ... naprawdę nie wiem jak bardzo powinienem być Ci wdzięczny za tak wspaniałą podpowiedź ... bo jestem debilem leniwym i pewno nie zaglądałem tam wcześniej ... sorry ... nie chcesz pomóc .. luz Twoje prawo ... ale nie traktuj z góry kogoś kto pyta bo nie znalazł nigdzie odpowiedzi ...
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Nie zadałeś żadnego konkretnego pytania, więc odesłałem Cię tam gdzie jest wiedza. Luz...

A co do oceniania ludzi którzy nie znaleźli odpowiedzi. Na 70% pytań jest odpowiedź w manualach albo komentarzach do nich, więc nie piernicz głupot że nie da się znaleźć odpowiedzi. No chyba że ktoś nie potrafi szukać, ale to już jego problem.
Go to the top of the page
+Quote Post
sf
post
Post #7





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Tu masz przykład:

http://stackoverflow.com/questions/5253302...l-mysql-columns

lub tutaj

http://dev.mysql.com/doc/refman/5.0/en/insert-select.html


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
ALF666
post
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2003

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


Dobra...jednak musialem wrocic do tego tematu sad.gif

sa dwie tabele
grupy (id,idh,nazwa)
i grupy_copy (id,idh,nazwa,nadrzedna)
potrzebuje wpisac do grupy_copy.nadrzedna kolumne grupy.nazwa ale tylko te pola ktore grupy.id = grupy_copy.idh

ponizsze zapytanie robi to wprawdzie .. ale jako nowe rekordy a nie aktualizacje kolumny grupy_copy.nadrzedna [ aktualnie ta kolumna jest pusta ]

  1. INSERT INTO grupy_copy (nadrzedna)
  2. SELECT
  3. grupy.nazwa
  4. FROM grupy, grupy_copy
  5. WHERE grupy.id = grupy_copy.idh


Pomoze ktos lopatologicznie wytlumaczy gdzie robie blad questionmark.gif


Dziekuje smile.gif
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #9





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(ALF666 @ 24.03.2015, 14:29:24 ) *
Dobra...jednak musialem wrocic do tego tematu sad.gif

sa dwie tabele
grupy (id,idh,nazwa)
i grupy_copy (id,idh,nazwa,nadrzedna)
potrzebuje wpisac do grupy_copy.nadrzedna kolumne grupy.nazwa ale tylko te pola ktore grupy.id = grupy_copy.idh

ponizsze zapytanie robi to wprawdzie .. ale jako nowe rekordy a nie aktualizacje kolumny grupy_copy.nadrzedna [ aktualnie ta kolumna jest pusta ]

  1. INSERT INTO grupy_copy (nadrzedna)
  2. SELECT
  3. grupy.nazwa
  4. FROM grupy, grupy_copy
  5. WHERE grupy.id = grupy_copy.idh


Pomoze ktos lopatologicznie wytlumaczy gdzie robie blad questionmark.gif


Dziekuje smile.gif

Tu bym proponował update:

  1. UPDATE grupy_copy cp SET nadrzedna = g.nazwa
  2. FROM grupy g
  3. WHERE g.id = gc.idh;


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
ALF666
post
Post #10





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2003

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


zakladam, ze to zapytanie mialo zostac przerobione przeze mnie na nastepujace

  1. UPDATE grupy_copy cp SET nadrzedna = grupy.nazwa
  2. FROM grupy, grupy_copy
  3. WHERE grupy.id = grupy_copy.idh


tyle, ze wyskakuje mi nastepujacy blad

[SQL] UPDATE grupy_copy cp SET nadrzedna = grupy.nazwa
FROM grupy, grupy_copy
WHERE grupy.id = grupy_copy.idh;
[Err] 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 'FROM grupy, grupy_copy
WHERE grupy.id = grupy_copy.idh' at line 2


cos zle przerobilem questionmark.gif
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #11





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. UPDATE grupy_copy JOIN grupy ON grupy.id = grupy_copy.idh SET nadrzedna = grupy.nazwa

Ale tak naprawdę ty chcesz zrobic MERGE (UPSERT) , którego w MySQL nie ma...

Ten post edytował mmmmmmm 24.03.2015, 21:03:34
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 Aktualny czas: 20.08.2025 - 21:56