Pitäs suorittaa seuraavanlainen tehtävä
Listaa kaikki elokuvat, niiden ohjaajien nimet (sukunimi ja etunimi) ja naispääosan roolinimet, joissa Adams-sukuniminen näyttelijä on esittänyt naispääosaa.
Kokeilin tollasella, mutta ongelmana on, että Etunimi ja Sukunimi ovat Naispääosaa näytelleen vaikka niiden pitäisi olla Ohjaajan.¨
SELECT Nimi, Sukunimi, Etunimi, Roolinimi FROM ELOKUVA, HENKILÖ WHERE HENKILÖ.Id = Naispääosa AND Sukunimi = 'Adams'
Tässä vielä taulut:
ELOKUVA(Id INT PRIMARY KEY NOT NULL, Nimi TEXT, Valmistusvuosi INT, Miespääosa INT, Naispääosa INT, Ohjaaja INT, KestoMin INT, Kuvaus TEXT); HENKILÖ(Id INT PRIMARY KEY NOT NULL, Etunimi TEXT, Sukunimi TEXT, Roolinimi TEXT);
Miten saan Etunimeen ja Sukunimeen ohjaajan tiedot, mutta Roolinimeen Sukunimellä 'Adams' olevan näyttelijän roolin?
Tavallaan se, että tietokanta päästää sinut helpolla (eli se suostuu arvaamaan pelkästä kentän nimestä mikä taulu on kyseessä), tekee hommasta sinulle hankalamman hahmottaa.
Sinun pitää ottaa kolme taulua mukaan kyselyyn (henkilö-taulu kahteen kertaan) ja suosittelen määrittämään taulujen väliset sidokset ON:lla heti sidoksen perään mieluummin kuin WHERE:ssä. Näin ne on helpompi hahmottaa
Eli siis kysely voisi olla jotain tyyliin
SELECT ELOKUVA.Nimi, Ohjaaja.Sukunimi, Ohjaaja.Eunimi, Nais.Roolinimi FROM ELOKUVA JOIN HENKILÖ Ohjaaja ON ELOKUVA.Ohjaaja=Ohjaaja.Id JOIN HENKILÖ Nais ON ELOKUVA.Naispääosa=Nais.Id WHERE Nais.Sukunimi = 'Adams';
Kiitos, nyt hahmotin mistä on kysymys.
Aihe on jo aika vanha, joten et voi enää vastata siihen.