![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zaznaczam, że postgresa uruchomiłem pierwszy raz kilka dni temu i jestem zielony, stąd pytanie.
Jak dorwać się do kilu baz jednocześnie w jednym zapytaniu? W MySQL'u robię po prostu "SELECT tabela1.pole1, tabela2.pole2 FROM baza1.tabela1 LEFT JOIN baza2.tabela2 USING(klucz_obcy)". A w Postgresie? Taki zapis mi nie działa. W ogóle siedząc w jednej bazie nie mogę dobrać się do drugiej. Siedząc w baza1 nie mogę zrobić "SELECT * FROM baza2.tabela2". Wywala błąd: parse error at or near "." |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Hm, widzę że się nie rozumiemy. :?
Wejdź sobie do MySQLa. Stwórz sobie 2 bazy danych i w każdej z nich po jednej tabelce i trochę danych. Przykładowy kod: Kod CREATE DATABASE baza1;
USE baza1; CREATE TABLE tabela1 (id_tabela1 INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, value VARCHAR(40) NOT NULL); INSERT INTO tabela1 (id_tabela1, value) VALUES (NULL, 'rekord numer [1] w [tabela1] w [baza1]'); INSERT INTO tabela1 (id_tabela1, value) VALUES (NULL, 'rekord numer [2] w [tabela1] w [baza1]'); INSERT INTO tabela1 (id_tabela1, value) VALUES (NULL, 'rekord numer [3] w [tabela1] w [baza1]'); CREATE DATABASE baza2; USE baza2; CREATE TABLE tabela2 (id_tabela2 INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, value VARCHAR(40) NOT NULL); INSERT INTO tabela2 (id_tabela2, value) VALUES (NULL, 'rekord numer [1] w [tabela2] w [baza2]'); INSERT INTO tabela2 (id_tabela2, value) VALUES (NULL, 'rekord numer [2] w [tabela2] w [baza2]'); INSERT INTO tabela2 (id_tabela2, value) VALUES (NULL, 'rekord numer [3] w [tabela2] w [baza2]'); Następnie wydaj polecenie Kod USE baza1;
SHOW TABLES; Zobaczysz, że widać tylko tabela1 - po prostu siedzisz w baza1. Możesz sobie wydać polecenie: Kod SELECT * FROM tabela1; Normalka.
A teraz wydaj takie polecenie: Kod SELECT * FROM baza2.tabela2; I co? Siedzisz w baza1 ale widzisz zawartość tabela2 z baza2. Jeszcze jeden przykład:Kod SELECT tabela1.*,tabela2.value FROM baza1.tabela1, baza2.tabela2 WHERE tabela1.id_tabela1=tabela2.id_tabela2; . I jak? Zapytanie ciągnie dane z dwóch tabel w DWÓCH RÓŻNYCH bazach.
I teraz wróćmy do mojego pytania. Jak to zrobić w Postgresie? PS. Te zdalne bazy na innych hostach to była taka dygresja. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 10:56 |