1

Temat: Zapytanie z 4 tabelami

Witam
Potrzebuje pomocy przy stworzeniu zapytania które połączy mi 4 table i da tabele wynikowa zawierającą 2 kolumny.
tab1: id, t1, t2, id_tab2, id_tab3
tab2: id, A1, A2, A3
tab3: id, A1, B2, B3
tab4: id, C1

tab1 posiada kolumny zawierające wartości do połączenia tab2 i tab3,
tab2 i tab3 posiada kolumnę o tej samej nazwie.
kolumna A1 zawiera wartości które sa zawarte w tab4 (prosty opis dla wartości liczbowej)
Potrzebuję uzyskać rezultat:
tab5: t1, A1, C1
Czy możecie pomóc w stworzeniu tego zapytania?
pozdrawiam
Irek

2

Odp: Zapytanie z 4 tabelami

Cześć Irek
Nie do końca rozumiem stwierdzenie "kolumna A1 zawiera wartości które są zawarte w tab4 (prosty opis dla wartości liczbowej)" jeśli oznacza to ze pole tab2.a1=tab4.id to zapytanie powinno wyglądać tak jak poniżej w przeciwnym wypadku musisz dokładniej opisać połączenie pomiędzy tabelami tab3 do tab4:

select tab1.t1,tab2.a1,(select c1 from tab4 where id=tab2.a1) as c1
from tab1
join tab2 on tab1.id_tab2=tab2.id

można do tego jeszcze dodać tabelę tab3 ale przy tym opisie. który załączyłeś nie ma sensu
PS
Następnym razem dołącz strukturę tabel w formacie CREATE TABLE nazwa (id serial primary key) ; itd.

Ostatnio edytowany przez c_michal (2013-10-25 14:44:22)

3

Odp: Zapytanie z 4 tabelami

Hej Michał,
Dzięki za odpowiedź już wyjaśniam dokładnie o co mi chodzi:
tab. 1
CREATE TABLE udz
(
  typ character varying,
  id character varying NOT NULL,
  idr character varying,
  g5ud character varying,
  g5dtw character varying,
  g5dtu character varying,
  rt_g5osf character varying,
  rv_g5osf character varying,
  rt_g5jdr character varying,
  rv_g5jdr character varying,
  rt_g5mlz character varying,
  rv_g5mlz character varying,
  rt_g5ins character varying,
  rv_g5ins character varying,
  rt_g5osz character varying,
  rv_g5osz character varying,
  st_obj double precision,
  CONSTRAINT udz_pkey PRIMARY KEY (id)

tab2.
CREATE TABLE osf
(
  typ character varying,
  id character varying,
  idr character varying,
  g5sti character varying,
  g5plc character varying,
  g5psl character varying,
  g5nip character varying,
  g5nzw character varying,
  g5pim character varying,
  g5dim character varying,
  g5oim character varying,
  g5mim character varying,
  g5dos character varying,
  g5dtw character varying,
  g5dtu character varying,
  rt_g5adr character varying,
  rv_g5adr character varying,
  st_obj double precision,
  CONSTRAINT osf_rv_g5adr_fkey FOREIGN KEY (rv_g5adr)

tab3.

CREATE TABLE ins
(
  typ character varying,
  id character varying,
  idr character varying,
  g5sti character varying,
  g5npe character varying,
  g5nsk character varying,
  g5rgn character varying,
  g5nip character varying,
  g5nzr character varying,
  g5nrr character varying,
  g5nsr character varying,
  g5dtw character varying,
  g5dtu character varying,
  rt_g5adr character varying,
  rv_g5adr character varying,
  st_obj double precision,
  CONSTRAINT ins_rv_g5adr_fkey FOREIGN KEY (rv_g5adr)

Na podstawie tych danych widać ze tab. osf i ins zawierają takie samo pole g5sti (w poprzednej wersji A1).
Zależy mi na tym zeby powstała mi tabela która będzie zawierać:
udz.id, g5sti ale kolumna g5sti chciałbym zeby zawierała dane zarówno z tabeli osf jak i tabli ins.
Mam nadzieję ze teraz wyjaśniłem to lepiej.
Pozdrawiam
Irek
ps. najbardziej mi zalezy na odpowiedzi czy da się wyświetlić dane z kilku tabel które mają takie same kolumny, a dane które są w nich zawarte uzupełniają się przykład:
udz id
323jdr - (odnosi się do tabeli ins) pole g5sti = 5
456jce - (odnosi sie do tabeli) osf pole g5sti = 7

Ostatnio edytowany przez irek7771 (2013-10-25 16:55:45)

4

Odp: Zapytanie z 4 tabelami

Temat nie aktualny poradziłem sobie ! smile funkcja concat połączyłem pola w jedno.
Dzieki za pomoc:)