Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Substringin haku SQL-kyselyssä

crimsonglory [02.10.2008 16:55:27]

#

Haluan tehdä Access-tietokantaan SQL-kyselyn, joka hakee tietylle henkilölle Henkilot-taulusta mjat "HenkiloID ja Etusukunimi" sekä yhdistää Tutkimukset-taulusta kyseisen henkilön tekemät tutkimukset, jotka listataan. Alla oleva haku hakee ne tutkimukset, joissa on ainoastaan yksi kirjoittaja eli juuri se haettu henkilö. Tarvitsisin kuitenkin sellaisen haun, joka hakee myös ne tutkimukset, joissa on useampi kirjoittaja eli haettu henkilö on osa mjasta Tutkimukset.Kirjoittaja - tulinkohan nyt ymmärretyksi? Miten hakuani tulisi muuttaa? Osaisiko kukaan neuvoa?

SELECT Henkilot.HenkiloID, Henkilot.Etusukunimi, Tutkimukset.Numero, Tutkimukset.Vuosi, Tutkimukset.Otsikko, Tutkimukset.Kirjoittaja, Tutkimukset.PDFlinkki
FROM Tutkimukset INNER JOIN Henkilot ON Tutkimukset.Kirjoittaja = Henkilot.Etusukunimi
WHERE HenkiloID=ID
ORDER BY Numero DESC

Antti Laaksonen [02.10.2008 17:24:57]

#

Onko siis taulun Tutkimukset kenttä Kirjoittaja merkkijono, joka sisältää kaikki tutkimuksen kirjoittajat?

Tällöin funktio INSTR voisi auttaa hakuehdossa:

ON INSTR(Tutkimukset.Kirjoittaja, Henkilot.Etusukunimi) <> 0

Funktiolle annetaan kaksi merkkijonoa, ja sen palautusarvo kertoo, missä kohdassa toinen merkkijono esiintyy ensimmäisessä. Jos palautusarvo on 0, toinen merkkijono ei esiinny ensimmäisessä.

En valitettavasti voi taata tämän toimivan, sillä minulla ei ole Access-tietokantaa.

Tulevaisuuden kannalta vinkiksi: Tietokanta olisi parempi suunnitella niin, että yhdessä kentässä ei ole kuin yksi tieto. Jos tutkimuksella voi olla monta kirjoittajaa, tarvitaan ylimääräinen taulu, jossa kerrotaan, ketkä kaikki kirjoittajat liittyvät mihinkin tutkimukseen. Tämä suunnittelutapa helpottaa monimutkaisempien kyselyiden laatimista.

crimsonglory [02.10.2008 17:29:27]

#

Bravo!!!!! Toimii!!!! :-))))
Suuret kiitokset!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta