napravio sam bazu koja cuva podatke o studentima, osoblju fakulteta, ocenama itd. Problematican query treba da izlista ocene studenta za module (predmete) koje je polagao. Tabele su:
student (SudentID, StudentName,...)
module (ModuleID, ModuleName,....)
studentMarks(StudentID, ModuleID, Mark)
Query:
Code:
select m.ModuleID, m.ModuleName, sm.Mark from module m, studentMarks sm
where m.ModuleID in
( select ModuleID from studentMarks
where StudentID = 1 AND Mark is not null);
select m.ModuleID, m.ModuleName, sm.Mark from module m, studentMarks sm
where m.ModuleID in
( select ModuleID from studentMarks
where StudentID = 1 AND Mark is not null);
Medjutim, umesto tri reda, ja dobijem 720, redova. Kada izvrsim samo subquery, dobijem tri. Broj redova u studentMarks tabeli je 240, dakle ja dobijam cisti dekartov proizvod.
Da li bi neko mogao ovo da objasni, jer ja ne vidim gde je greska u logici ovog queryja.
Hvala