Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] INSERT INTO (SELECT)
lelun
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 22.01.2009

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


Witam.
Mam problem z zagniezdzeniem SELECTa zaraz po INSERT INTO, prawdopodobnie popelnilem jakis blad w skladni, jednak nie potrafie tego poprawic...

Sa tabelki: log, czapka, szalik, rekawiczki

czapka, szalik, rekawiczki(
ID int NOT NULL AUTO_INCREMENT,
nazwa char(100),
PRIMARY KEY(ID)
);

log(
ID int NOT NULL AUTO_INCREMENT,
data timestamp,
ID_OBCY int NOT NULL,
skad char(20),
nazwa char(100),
PRIMARY KEY(ID)
);

W logu sa rekordy ktore usunelem z pozostalych tabel, wiec kiedy chce je przywrocic wklepuje tak:

  1. INSERT INTO (SELECT skad FROM log WHERE ID ='3') (`id`, `nazwa`) VALUES ((SELECT ID_OBCY FROM log WHERE ID ='3'),(SELECT nazwa FROM log WHERE ID ='3'))


blad wywala przy pierwszym "SELECT" zaraz po "INSERT INTO", reszta smiga. docelowo bedzie wygladalo to tak:

  1. INSERT INTO czapka (`id`, `nazwa`) VALUES ('10','zimowa');


dzieki za poswiecenie czasu, pozdrawiam (IMG:style_emoticons/default/smile.gif)


Go to the top of the page
+Quote Post
jaslanin
post
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


Nie ma możliwości by przy pomocy podzapytania (subquery) wydobyć string który później będzie używany jako nazwa tabeli (być może jest jakaś "brudna sztuczka"). Sam taki pomysł/potrzeba wskazuje na błędne zaprojektowanie bazy danych, więc radzę przemyśleć jej budowę.

Oczywiście możesz to zrobić używając dwóch zapytań i użyć np. PHP. Lub skorzystać z zmiennych i prepared statements syntax mysql'a.

Ten post edytował jaslanin 11.02.2012, 17:48:40
Go to the top of the page
+Quote Post
lelun
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 22.01.2009

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


Dzieki za propozycje, zrobilem posrednio, przez php i 2 zapytania (IMG:style_emoticons/default/smile.gif)

baza napewno jest zle zaprojektowania, nigdy nie mialem z tym stycznosci.

pozdrawiam.
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: 22.08.2025 - 22:22