Hei,
minulla on yksinkertainen tehtävä, joka pitäisi tehdä SQL-kyselyllä, mutta päässä täydellinen blackout.
Yksikertaistettu esimerkki:
Taulussa on rivejä, joissa on paritettu asioita tyyliin tätä tuotetta on väreissä yks,kaks ja kolme (kaikki parit eri riveinä), ja pitäisi hakea tietyistä tuotteista ne, joita saa samoissa väreissä.
Kannassa on siis esim.
paita;punainen
paita;keltainen;
paita;musta
sukat;vihreä
sukat;musta
sukat;keltainen
housut;siniset
housut;mustat
hame;punainen
hame;keltainen
Sitten kysytään: hae missä samoissa väreissä saa paitoja ja sukkia? Vastaus on keltainen ja musta, muta miten se kysytään sql:llä? Vastaukseen ei saa tulla sellaiset värit, joita ei ole molemmista (esim. vaikka paitaa saa punaisena, mutta sukkia ei, niin punaista ei tuoda). Kysyttäviä tuotteita voi olla yksi-monta. Löydettäviä värejä voi olla 1-monta (huonossa tapauksessa myös 0).
Mistä kohtaa rupean rakentamaan kyselyä?
TIA, -A-
lainaus:
missä samoissa väreissä saa paitoja ja sukkia?
select a.väri from tuote a join tuote b on a.väri=b.väri where a.tyyppi='paita' and b.tyyppi='sukka'
Kiitos nopeasta vastauksesta.
Jos oikein oivallan, niin teen tästä dynaamisen kyselyn ja tuotteiden lisääntyessä lisään jokaisesta tuotteesta
from-osaan: join x on a.väri=x.väri ja
where-osaan: and x.tyyppi='x:n tyyppi'.
select a.väri from tuote a join tuote b on a.väri=b.väri join join tuote c on a.väri=c.väri where a.tyyppi='paita' and b.tyyppi='sukka' and c.tyyppi='housut'
Menen kokeilemaan.
Juu, tuossa on yksi join liikaa (join join) mutta muuten ihan bueno.
Aihe on jo aika vanha, joten et voi enää vastata siihen.