Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dwa zapytania
Forum PHP.pl > Forum > Bazy danych
palmaero
a wiec tak
musze za jednym razem wyslac dwa zapytania

1. musze pobrac dane z jednej tabeli
2. musze dodac linie do drugiej tabeli (kozystajac z danych z pierwszej)

Czytalem na tym forum ze nie da sie jednoczesnie wyslac dwoch zapytan, wiem ze sie da, ale nie wiem jak

Nie znalazlem na forum zadnego kawalka kodu
Jabol
Mam nadzieje, ze nie korzystasz z mysql'a[sql:1:c051ee5e95]INSERT INTO
tabela (pole1, pole2, pole3)
VALUES
(
SELECT
pole1, pole2, pole3
FROM
inna_tabela
);[/sql:1:c051ee5e95]
palmaero
kozystam z mysql-a smile.gif
Jabol
sad.gif , to niestety dwa zapytania conajmniej
uboottd
INSERT ... SELECT jest wspierany przez MySQL. Tyle ze ma nieco inna skladnie niz podal Jabol:

INSERT INTO tabela (pola...) SELECT wartosci FROM whatever

warunek jest taki: liczba pol do wsadzenia do tabeli musi sie zgadzac z iloscia wartosci zwracanych przez selecta i nie mozma robic selecta do tabeli do ktorej jest insert.
Jabol
hehe, to nie wiedzialem, ale z tego co czytam to w oraclu (a to wlasnie stad pochodzi moja wiedza) mozna obydwa. I musza byc jeszcze te same typy o ile mi wiadomo.
uboottd
No Twoja postac to normalne subzapytanie -> witamy w mysql>4.1,
natomiast typy nie musza byc te same o ile dadza sie scastowac.
Gall
A jak w postgresie (plpgsql) dopisać do jednej tabeli jednocześnie jedno pole z innej tabeli i inne wartości (stałe i zmienne z funkcji w plpgsql)?
Nie chce mi przyjąć
[sql:1:9b5891d728]INSERT INTO tabela VALUES (SELECT wartosc FROM tabela2 WHERE innawartosc=costam, zmienna1, stala1, stala2)[/sql:1:9b5891d728]
Jak takie coś zrobić poprawnie. Wiem, że można wpisać z selecta do następnej zmiennej, a dopiero potem insert, ale ja chcę się czegoś jeszcze nauczyć bardziej zakręconego. Mam nadzieję, że się da tak zrobić, bo chcę powywalać trochę zmiennych używanych tylko raz właśnie do przechowywania wartości z innej tabeli.
kurtz
Hej
Cytat
Jak takie coś zrobić poprawnie
Np tak:
[sql:1:e3a777f850]INSERT INTO tabela VALUES (SELECT wartosc, zmienna1, stala1, stala2 FROM tabela2 WHERE innawartosc=costam)[/sql:1:e3a777f850]Zakladam ze stala1 stala2 oraz zmienna1 to jakies okreslone wartosci. Np "ala" lub 123.323

Pozdrawiam
Gall
Cytat
Hej
Cytat
Jak takie coś zrobić poprawnie
Np tak:
[sql:1:ae2dc3c58e]INSERT INTO tabela VALUES (SELECT wartosc, zmienna1, stala1, stala2 FROM tabela2 WHERE innawartosc=costam)[/sql:1:ae2dc3c58e]Zakladam ze stala1 stala2 oraz zmienna1 to jakies okreslone wartosci. Np "ala" lub 123.323
Pozdrawiam

[sql:1:ae2dc3c58e]INSERT INTO tabela VALUES ((SELECT costam FROM tabela2 WHERE warunek), zmienna1, stala1, stala2) [/sql:1:ae2dc3c58e]

Tak mi zadziałało, więc już nie testuję twojego rozwiązania winksmiley.jpg
Ale dzięki. Qrka a wcześniej z nawiasami cosik działać nie chciało. Musiałem robić gdzieś błąd.
Nie pierwszy i nie ostatni.
PS2. Czy tylko ja jestem taki samobójca że zamiast większość żeczy robić w php to większość rzeczy robie w plpgsql, a php służy głównie do zadawania zapytań i wyświetlania wyników? winksmiley.jpg
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.