Jotenkin järkevästi...

tehtyä...

On kolme taulua, opiskelijat, kurssit ja ilmoittautumiset:

Opiskelija (id, nimi);
Kurssi (id, nimi);
Ilmoittautumiset (id, id_kurssi, id_opiskelija);


Nyt pitäisi jotenkin järkevästi tulostaa luettelo opiskelijoista ja mille kursseille kukin on ilmoittautunut, jotenkin näin:

Matti Virtanen - matem, ruotsi, liik, kuv, hist
Katri Savolainen - hist, matem, usk, eng
Anna Ström - ruotsi, eng, matem
jne...

Miten tämä onnistuisi mahdollisimman "nopeasti/tehokkaasti"

Yksi vaihtoehto on tietenkin hakea ensin kaikki opiskelijat ja sitten jokaisen opiskelijan ilmoittautumiset, mutta silloin kyselyiden määrä olisi aivan hirveä. Onko parempia ideoita?

Opiskelijaoita ja ilmoittautumisia on tosi paljon!!!

2

298

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • I. Proqatlis

      Kouluesimerkki moni-moneen -relaatiosta, joka puretaan luomalla opiskelijoiden ja kurssien väliin ilmoittautumiset-taulu. (Miksi tuossa ilmoittautumiset-taulussa on sarake 'id'? Ei sitä tarvita.)

      Tauluilla tulee olla uniikit indeksit, jotka tässä tapauksessa koostuvat id-sarakkeista. Ilmoittautumiset-taulun uniikki indeksi muodostuu sen molemmista sarakkeista. Seuraava SQL-operaatio on aika tehokas:

      select
          opiskelija.nimi, kurssi.nimi
      from
          opiskelija, kurssi, ilmoittautumiset
      where
          ilmoittautumiset.id_opiskelija = opiskelija.id and
          ilmoittautumiset.id_kurssi = kurssi.id
      order by
          ilmoittautumiset.id_opiskelija;


      Ratkaisinko kotiläksysi ;-)

      • tohlo

        > (Miksi tuossa ilmoittautumiset-taulussa on
        > sarake 'id'? Ei sitä tarvita.)

        (En ole alkuperäinen kysyjä.)

        Vaikkapa siksi, että opiskelija voisi ilmoittautua samalle kurssille useampaan kertaan. Laiska opiskelija kun ei heti pääse kurssista läpi. ;-) Tosin arvosteluita ym. ei tässä ehkä haluttukaan tallentaa eli mahdollisesti useampaa kurssi-henkilö -paria ei tarvitse salliakaan, joten tässä mielessä olisit siis oikeassa.

        Niin, ja vastauksesi ei ilmaissut sitä, että sql-kyselyn tulos (1. rivi: "Matti, usk.", 2. rivi: "Matti, eng.", jne) pitää käyttöliittymässä näyttämistä varten purkaa vielä kysyjän haluamaan "näyttävämpään" muotoon ("Matti - usk, eng, hist"). Tämä tosin taisi olla jo itsestään selvää. ;)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ja taas ammuttu kokkolassa

      Kokkolaisilta pitäisi kerätä pois kaikki ampumaset, keittiöveitset ja kaikki mikä vähänkään paukku ja on terävä.
      Kokkola
      56
      5443
    2. Mitä siellä ABC on tapahtunut

      Tavallista isompi operaatio näkyy olevan kyseessä.
      Alajärvi
      91
      4231
    3. Helena Koivu on äiti

      Mitä hyötyä on Mikko Koivulla kohdella LASTENSA äitiä huonosti . Vie lapset tutuista ympyröistä pois . Lasten kodista.
      Kotimaiset julkkisjuorut
      372
      2500
    4. Ovatko naiset lopettaneet sen vähäisenkin vaivannäön Tinderissa?

      Meinaan vaan profiileja selatessa nykyään valtaosalla ei ole minkäänlaista kirjoitettua tekstiä siellä. Juuri ja juuri s
      Nettideittailu
      70
      1038
    5. Suomi vietiin Natoon väärin perustein. Viides artikla on hölynpölyä. Yksin jäämme.

      Kuka vielä uskoo, että viides artikla takaa Suomelle avun, jos Suomeen hyökätään. Liikuttavasti täällä on uskottu ja ved
      Maailman menoa
      329
      1018
    6. Et ilmeisesti aio enää ikinä olla tekemisissä

      Että näinkö se menee
      Ikävä
      61
      823
    7. Sydämeni on sinun luona

      Koko ajan. Oli ympärilläni ketä oli niin sinä olet vain ajatuksissa ja tunteissa. En halua muiden kosketusta kuin sinun
      Ikävä
      46
      806
    8. Trump ja Venäjä

      Huomasitteko muuten... Käytännössä ainoat valtiot, joille Trump EI eilen asettanut typeriä tariffejaan, olivat Venäjä ja
      Maailman menoa
      102
      789
    9. Jatkuva stressitila

      On sinun vuoksesi kun en tiedä missä mennään mutta tunteeni tiedän ainoastaan
      Ikävä
      52
      769
    10. Kuvaile elämäsi naista

      Millainen hän on? Mikä tekee hänestä sinulle erityisen?
      Ikävä
      25
      764
    Aihe