Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: W jaki sposób wybrać dane z jednej tabeli i wsadzić je do innej
Forum PHP.pl > Forum > Bazy danych
pasTerzu
Potrzebuje wybrać rekordy spełniające jakieś kryteria z jednej tabeli i wpisać je do drugiej tabeli. Udało mi się zrobić to w oparciu o tablice - czy da się to zrobić z pominięciem tablic ?
wlq
poszukaj na:
http://dev.mysql.com/doc/refman/5.0/en/update.html
http://dev.mysql.com/doc/refman/5.0/en/join.html


zwroc uwage na zastosowanie "join"
Adiasz
chyba chodzi o:
INSERT INTO
SELECT INTO
interjaz
INSERT INTO VALUES ((SELECT ...)

post traktowany jako nabicie postow. a niby co adiasz napisal post wyzej? nawet z linkami /~nospor/
Jabol
Coś zupełnie innego Panie nospor. Sposoby zaproponowane przez Adiasza to zupełnie inne sposoby niż interjaza. Trzeba czytać - uważnie, Panie nospor.
nospor
blink.gif
Panie Jabol, wejdź Pan do linka co podal Adiasz i co tam mamy:
Cytat
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]


Teraz to co napisal interjaz:
Cytat
INSERT INTO VALUES ((SELECT ...)


Jedyna roznica to taka, ze adiasz podal linka gdzie to wszystko opisane, a interjaz dowalil cos, czego potem samemu trzeba szukac. Adiasz podal wszystko jak na tacy, nie trzeba biegac po manualu i zastanawiac sie oco chodzi, czego nie da sie uniknac przy skrócnej wersji interjaz'a. A tak patrzac uwaznie to wogole wersja interjaza wydaje sie bledna, bo nawet nie pasuje to zadnego wzoru insert into.

edit: i co zes z tym Panem wyjechal? Ja to podtrzymalem bo rozumiem ze to taka zabawa? Kto jak kto, ale ty powinienes wiedziec ze na forum nie odnosimy sie do siebie per Pan, chyba ze... no wlasnie, chyba ze co?
Jabol
Nie zabawa, a wersja hmmm... chciałem zabrzmieć mocno, a jako że nie mam tutaj autorytetu musiałem użyć innego sposobu.
Natomiast wciąż utrzymuje że to dwie inne wersje.
Z punktu widzenia sql'a na pewno inne, ale może dla Ciebie różnica nawiasów nie oznacza, że to dwa Zupełnie inne sposoby. Bo werjsa z manuala to wersja służąca do kopiowania danych z jednej tabeli do drugiej. A werjsa którą podał interjaz to zwykły insert z podzapytaniem - coś co tylko przez przypadek nadaje się do rozwiązania tego problemu. Tak więc pozostaje przy swoim zdaniu, że pomimo obie werjse robią to samo i są podobne, to z punktu widzenia sql'a są zupełnie różne.
nospor
Cytat
A werjsa którą podał interjaz to zwykły insert z podzapytaniem
Sęk w tym, ze ja nigdzie nie moge znaleźć takiego zastosowania co podal interjaz. jako values nie mozesz uzyc podzapytania. tego nie ma w manualu ani w praktyce nie udalo mi sie tego osiągnąc. Na PW interjaz napisal mi, ze faktycznie nie czytal linkow co byly przed nim.
I jak napisalem wczesniej:
Cytat
A tak patrzac uwaznie to wogole wersja interjaza wydaje sie bledna, bo nawet nie pasuje to zadnego wzoru insert into.


Jesli jednak istnieje taka konstrukcja o ktorej mowisz, to prosze podaj mi dokladnie jej kod, link do manuala czy czegos tam. jestem otwarty na nową wiedzę smile.gif
Jabol
No cóż - rzeczywiście masz rację. W ten sposób da się skopiować tylko jeden rekord.
Przyznaje, nie wiedziałem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.