Autor Zpráva
frannnta
Profil *
Dobrý den.

Chtěl bych Vás poprosit o pomoc s následující, pro mě, problémem. Řekněme, že mám takovéto tabulky:

Studenti: Id, Jméno
Predměty: Id, Název
Známky: Id, IdS, IdP, Známka

Takže Studenti s Predmětama jsou ve vztahu M:N. A já bych potřeboval vypsat ty studenty, kterým chybí známka z nějakého předmětu.

Příklad:

Studenti:
1, Pepa
2, Karel

Předměty:
1, Matematika
2, Čeština

Známky:
1, 1, 1, 5 // Pepá má z matematiky známku 5
2, 1, 2, 2 // Pepá má z češtiny známku 2
3, 2, 1, 3 // Karel má z matematiky známku 3

Výsledek by měl vypadat takto:
Karel, Čeština // Karel nemá známku z Češtiny

Děkuji.
tiso
Profil
frannnta: chýba ti tam samostatná prepojovacia tabuľka medzi študentami a predmetmi.
Kajman_
Profil *
Možná takto nějak
select * from
predmety p join studenti s
left join znamky z on p.id=z.idp and s.id=z.idz
where z.idp is null 
tiso
Profil
Kajman_-ovo riešenie platí len za predpokladu, že všetci študenti študujú všetky predmety. Inak sa nedá rozhodnúť či ten študent ten predmet študuje a nemá známku, alebo ten predmet vôbec neštuduje.
Kajman_
Profil *
tiso:
Inak sa nedá rozhodnúť či ten študent ten predmet študuje a nemá známku, alebo ten predmet vôbec neštuduje.

Ale to se rozhodovat nemá, jen vypsat ty studenty, kterým chybí známka z nějakého předmětu, takže je to jedno jestli tu známku mají mít nebo ne.
tiso
Profil
Kajman: otázne je či frannnta vie čo naozaj chce... Nech sa vyjadrí sám.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: