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

658

    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. Mitkä asiat

      tekevät vaikeaksi kohdata kaivattusi?
      Ikävä
      74
      1114
    2. 75
      1111
    3. Rakas

      Eihän se tietysti minulle kuulu, mutta missä sinä olet? 😠
      Ikävä
      48
      1004
    4. Miltä se tuntuu

      Miltä se tuntuu havahtua, että on ollut ihmistä kohtaan, joka on rakastanut ja varjellut, täysi m*lkku? Vai havahtuuko s
      Ikävä
      104
      958
    5. Pidit itseäsi liian

      Vanhana minulle? Niinkö?
      Ikävä
      51
      935
    6. En mahda sille mitään

      Olet ihanin ja tykkään sinusta todella paljon.
      Ikävä
      33
      717
    7. Haluaisitko oikeasti

      Vakavampaa välillemme vai tämäkö riittää
      Ikävä
      49
      704
    8. Mitä se olisi

      Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?
      Ikävä
      34
      607
    9. Joko olet luovuttanut

      Mun suhteen?
      Ikävä
      50
      590
    10. Nanna Karalahti :Paljastus bisneksistä Jere Karalahden kanssa!

      Ottanut yhteyttä seiskalehden toimittajaan ja kertonut totuuden yhteisestä Herotreeni-nimisestä verkkovalmenuksesta.
      Kotimaiset julkkisjuorut
      118
      557
    Aihe