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

308

    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. Taisin tehdä virheen

      Kaipaan sua enemmän kuin kuvittelin. Luulin, että helpottuisin, mutta olinkin täysin väärässä. Vieläkö vastaisit minulle
      Ikävä
      44
      2992
    2. Hyvä että lähdit siitä

      Ties mitä oisin keksinyt jos oisit jäänyt siihen, näit varmaan miten katoin sua.... 😘🤭😎💖
      Ikävä
      36
      2631
    3. Et siis vieläkään

      Et ilmeisesti ole vieläkään päässyt loppuun asti mun kirjoituksissa täällä. Kerro ihmeessä sit, kun valmista 😁 tuskin k
      Ikävä
      53
      2584
    4. Koronarokotus sattui oudon paljon nyt sairaanhoitaja Tanja 46 istuu pyörätuolissa

      Pitkä piina piikistä Kun Tanja Vatka käy suihkussa, tuntuu kuin ihoa revittäisiin raastinraudalla irti. Hän on kärsinyt
      Maailman menoa
      102
      2258
    5. Nyt tuntuu siltä, että on pakko päästä puhumaan kanssasi

      Tuntuu että sekoan tämän kaiken takia. Miehelle
      Ikävä
      48
      2094
    6. Olisitko mies valmis?

      Maksamaan naisellesi/vaimollesi/tyttöystävällesi elämisestä syntyvät kulut, ruokailun, vuokran ja muut välttämättömät me
      Ikävä
      342
      1893
    7. Mitä haluat sanoa kaivatullesi?

      Onko ikävä? Milloin näitte viimeksi?
      Ikävä
      150
      1546
    8. Nainen, mulla olisi sulle pari vinkkiä

      Kerro vain ongelmasi niin annan siihen vinkin. :/
      Ikävä
      73
      1408
    9. vieläkin sanoa voin...

      💖💛💖💛💖💛💖💛💖 💛 Beijjjbeh 💛 Kaks vuotta tänään täällä. Miten hitossa jotkut on jaksaneet kymmeniä vuos
      Ikävä
      23
      1188
    10. Nainen onko sulla supervoimmia ?

      Voisitko auttaa miestä mäessä? Tarjota auttavan käden ja jeesata tätä miestä? Tai antaa olla et sä kuitenkaan auta.
      Ikävä
      28
      1175
    Aihe