SQL-kysymys

Dangera

Otetaan yksinkertainen esimerkki havainnollistamaan kysymystäni. Minulla on kaksi taulua joissa on sarakkeet: NIMET(hlo_id, etunimi, sukunimi, ammatti_id) AMMATIT(ammatti_id, ammatti) Kuvitellaan, että haluan siirtää ammatit-taulun ammatti-sarakkeen sisällöt nimet-tauluun (ottamatta nyt kantaa siihen onko se rakenteen kannalta järkevää). Onnistuuko se niin, että nimet-taulun ammatti-id vastaa ammatti-saraketta? Olen kokeillut select intoa, mutta se tuo päivitettävään tauluun vain kummallisia null-rivejä?

5

641

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • The Rat

      Mitä nyt siis haetaan takaa? Ettäkö Nimet -tauluun lisättäisiin rivejä, joille tulisi ammatti johonkin kenttään ja ammatti_id omaan kenttäänsä? Vai onko tarkoitus lisätä sarake ammatti ja kopioida sitten Ammatit-taulusta oikea arvo? Vai päivitetäänkö henkilön ammatti tekstimuodossa johonkin sarakkeeseen Nimet -taulussa?

      • Dangera

        Nimet-tauluun pitää saada ammatit ammatti-taulusta niin, että ammatti-id:t täsmäävät eli ihmisille tulee oikeat ammatit!


      • The Rat
        Dangera kirjoitti:

        Nimet-tauluun pitää saada ammatit ammatti-taulusta niin, että ammatti-id:t täsmäävät eli ihmisille tulee oikeat ammatit!

        Mihin kenttään? Tuossa taulussa kun ei ole valmiina ammatti-kenttää. Jos se oikeasti tarvitaan, niin sitten ensin alter tablella (tai jollain hallintavälineellä) kenttä lisää ja sitten update:lla päivitys: update nimet set ammatti = (select ammatti from ammatit where ammatit.ammatti_id = nimet.ammatti_id); Nythän tuo tosin on mukavasti normaalimuotoista dataa, eli haettaessa yhdistettäisiin nuo kaksi taulua ammatti-id:n perusteella (where-ehtoon). select * from nimet, ammatit where nimet.ammatti_id = ammatit.ammatti_id;


      • Dangera
        The Rat kirjoitti:

        Mihin kenttään? Tuossa taulussa kun ei ole valmiina ammatti-kenttää. Jos se oikeasti tarvitaan, niin sitten ensin alter tablella (tai jollain hallintavälineellä) kenttä lisää ja sitten update:lla päivitys: update nimet set ammatti = (select ammatti from ammatit where ammatit.ammatti_id = nimet.ammatti_id); Nythän tuo tosin on mukavasti normaalimuotoista dataa, eli haettaessa yhdistettäisiin nuo kaksi taulua ammatti-id:n perusteella (where-ehtoon). select * from nimet, ammatit where nimet.ammatti_id = ammatit.ammatti_id;

        käy..mutta toiseen tauluun yrittäessä samalla periaatteella tulee error että multiple rows returned by subquery. Missä vika?


      • The Rat
        Dangera kirjoitti:

        käy..mutta toiseen tauluun yrittäessä samalla periaatteella tulee error että multiple rows returned by subquery. Missä vika?

        Kaksi riviä samalla ID:llä. Määritä primary keyksi tai muuten uniikiksi, niin ei pääse syntymään.


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

    Luetuimmat keskustelut

    1. Sanna niin nättinä Amsterdamin Business Foorumilla

      Upeasti edustaa taas Suomea ulkomailla meidän kansainvälinen superstaramme. Miksei persuilla ole ketään siedettävän näk
      Maailman menoa
      158
      9935
    2. Stubb jo paljon tunnetumpi kuin kaikki persut yhteensä

      Nyt on aika ottaa mittaa tunnettavuudesta, herrat ja narrit! Joku tuolla toisessa ketjussa väitti, että "persujen rivimi
      Maailman menoa
      3
      9523
    3. Työeläkkeiden maksaminen on lopetettava

      Suomen talous on palkansaajien vuosikausia heikentyneen ostovoiman vuoksi niin kuralla, että palkkasumman jakamisessa ta
      Maailman menoa
      136
      8024
    4. Sofia Virran pahoinpitelyä puolustetaan netissä

      HS soitti Virran pahoinpitelyä puolustaneille https://www.hs.fi/politiikka/art-2000011516353.html
      Maailman menoa
      261
      7548
    5. Purra tekee hyvää työtä, me suomalaiset haluamme että hän jatkaa myös

      seuraavan hallituksen valtiovarainministerinä. Kovina aikoina pitää olla kova.
      Maailman menoa
      126
      6211
    6. Koska Minja Koskela ja Sofia Virta kääntyy islamiin?

      Sekä vihreät että vasurit selvästi pitävät islamista ja muslimeista, varsinkin naiset, joten voidaan olettaaa että nuo k
      Maailman menoa
      87
      5987
    7. Persu Keskisarja on politiikan Uuno Turhapuro

      Asiantuntija luonnehtii Keskisarjaa Trumpin ajan Turhapuroksi, joka ärsyttää kokoomusta. – Keskisarjan känni-imago j
      Maailman menoa
      56
      5797
    8. Stubb jo paljon tunnetumpi ja arvostetumpi maailmalla, kuin Marin koskaan

      Stubb tekee sitä työtä mitä pitää, hän ei koreile vaatteilla eikä ole baareissa räkäposkella kuten Marin. Marininhan pit
      Maailman menoa
      94
      4861
    9. Oikeistohallitusten aikaan saannokset.

      Holkerin touhujen seurauksena lama. Aho jatkoi tuhoa osaamattomuudellaan. Katainen ja alkoi talouden alamäki. Sipilä ja
      Maailman menoa
      14
      3947
    10. Pelle Miljoona, 70, saa harvinaista taiteilijaeläkettä - Tämän suuruinen eläke on kuussa!

      Pelle Miljoona on kyllä symppis! Peace! Suomen punk-konkari Pelle Miljoona on yksi syksyn Vain elämää -kauden artisteist
      Vain elämää
      56
      1495
    Aihe