Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PostgreSQL _ Laczenie tabel [problem]

Napisany przez: Matrix15 26.05.2015, 11:07:32

Witam, mam problem z polaczeniem tabel a mianowicie mam 3 tabele:
lekarze, placowki,oddzialy_nfz.

Mam za zadanie polaczyc 3 tabele.
Stworzylem zapytanie:

Kod
select
lekarze.nr_pesel_lekarza as "Ordynator_placowki",
placowki.nazwa_placowki,
oddzial_nfz.region_oddzialu
from lekarze
join placowki on nr_pesel_lekarza = nazwa_placowki
join oddzial_nfz on region_oddzialu = nr_pesel_lekarza

Tabele wygladaja nastepujaco:
Kod
CREATE TABLE lekarze
(
  nr_lekarza serial NOT NULL,
  imie character varying(20) NOT NULL,
  nazwisko character varying(20) NOT NULL,
  nr_dowodu_lekarza character(9) NOT NULL,
  nr_pesel_lekarza character(11) NOT NULL,
  data_urodzenia date NOT NULL,
  kwota_brutto real NOT NULL,
  CONSTRAINT lekarz PRIMARY KEY (nr_lekarza, nr_dowodu_lekarza, nr_pesel_lekarza),
  CONSTRAINT lekarze_nr_dowodu_lekarza_key UNIQUE (nr_dowodu_lekarza),
  CONSTRAINT lekarze_nr_lekarza_key UNIQUE (nr_lekarza),
  CONSTRAINT lekarze_nr_pesel_lekarza_key UNIQUE (nr_pesel_lekarza)
)
CREATE TABLE placowki
(
  nr_placowki serial NOT NULL,
  nazwa_placowki character varying(30) NOT NULL,
  adres character(30) NOT NULL,
  nr integer NOT NULL,
  kod_pocztowy integer NOT NULL,
  miejscowosc character varying(20) NOT NULL,
  kontrakt_z_nfz date,
  przydzial_oddzialu_nfz serial NOT NULL,
  CONSTRAINT placowka PRIMARY KEY (nr_placowki, nazwa_placowki),
  CONSTRAINT placowki_przydzial_oddzialu_nfz_fkey FOREIGN KEY (przydzial_oddzialu_nfz)
      REFERENCES oddzial_nfz (nr_oddzialu_nfz) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT placowki_nazwa_placowki_key UNIQUE (nazwa_placowki)
)
CREATE TABLE oddzial_nfz
(
  nr_oddzialu_nfz serial NOT NULL,
  region_oddzialu character varying(20) NOT NULL,
  adres_siedziby character varying(20) NOT NULL,
  nr_siedziby integer NOT NULL,
  kod_pocztowy_siedziby integer NOT NULL,
  miejscowosc_siedziby character varying(20),
  procent_refunacji numeric(2,2),
  CONSTRAINT oddzialy_nfz PRIMARY KEY (nr_oddzialu_nfz, region_oddzialu),
  CONSTRAINT oddzial_nfz_nr_oddzialu_nfz_key UNIQUE (nr_oddzialu_nfz),
  CONSTRAINT oddzial_nfz_region_oddzialu_key UNIQUE (region_oddzialu)
)


Problem jest taki ze w zaden sposob nie wyswietla mi tego co chce uzyskac, bledu w zapytaniu nie wyrzuca jednak tabela zostaje pusta.
Co w zapytaniu jest nie tak?

Napisany przez: mmmmmmm 26.05.2015, 11:39:01

Zastanów się... Łączysz lekarze.nr_pesel_lekarza z placowki.nazwa_placowki i chcesz aby się coś wyświetliło? Nie ma szans, aby PLACÓWKA nazwysła się tak, jak PESEL lekarza. A nawet jakby, to co najwyżej JEDNEGO lekarza, bo pesele powinny być unikalne - i tak masz zdefiniowane. Druga sprawa, to nie wiem, czy wiesz, ale w tabeli placowki masz dwa pola SERIAL... a to niezdrowo...

Napisany przez: Matrix15 26.05.2015, 22:38:59

Dzieki za odpowiednie naswietlenie sytuacji, nie lapalem do konca ocb ale udalo sie to ogarnac.
Poprawione co trzeba i dziala.

Temat mozna zamknac.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)