Za dużo wyników przy zapytaniu

Za dużo wyników przy zapytaniu
R9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

Witam,
Tworzę bazę danych klubu piłkarskiego i już na początku pojawił się problem.
Otóż chcę wypisać osoby które pracują na stanowisku 'Fizjoterapeuta'. Jednak przy poniższym zapytaniu wynikiem są wszystkie osoby wprowadzone do bazy, lekarze itd. Dlaczego tak się dzieje ?

Kopiuj
 
select imie from personel,stanowiska where nazwa like 'Fizjoterapeuta';

Kod Bazy:

Kopiuj
 
create table Stanowiska
(
IdStanowiska INT NOT NULL,
PRIMARY KEY(IdStanowiska),
Nazwa VARCHAR2(25)
);

create table Personel
(
IdPersonelu INT NOT NULL,
IdStanowiska INT NOT NULL,
PRIMARY KEY(IdPersonelu),
FOREIGN KEY(IdStanowiska) REFERENCES Stanowiska(IdStanowiska),
Imie varchar(25),
Nazwisko varchar(25),
Pesel number(11),
Telefon number(9),
Miasto varchar (20),
ZarobkiMiesięczne number(8)
);


insert into stanowiska values (1,'Fizjoterapeuta');
insert into stanowiska values (2,'Lekarz');
insert into stanowiska values (3,'Kierownik');


insert into personel values (1,1,'Andrzej','Smuda',74051114895,788000546,'Łomża',900);
insert into personel values (2,1,'Bartek','Łepkowski',85047952145,460564219,'Warszawa',1900);
insert into personel values (3,2,'Łukasz','Cwalina',94120149856,660777087,'Kolno',2500);

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2

Najsampierw chłopie to sobie sprawdź, co Ci zwróci samo SELECT imie FROM personel, stanowiska i przekonaj się, dlaczego potrzebujesz LEFT JOINa :P

SO
  • Rejestracja: dni
  • Ostatnio: dni
2

Takie zapytanie zwraca to samo co CROSS JOIN, czyli iloczyn kartezjański zbiorów.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.