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ä?
SQL-kysymys
5
660
Vastaukset
- 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
- 694387
- 664042
Kiva kun SDP alkaa hallitsemaan Suomea
Vanhat hyvät ajat taas palaavat ja kansa vaurastuu. Muistatteko vielä Sorsan aikakauden? Silloin Suomessa tehtiin jopa1173872SDP:n lyhyt selviytymisopas
1. Komitea on vastaus, oli kysymys mikä tahansa Jos maailma on muuttumassa tai jossain palaa, demari ei hätiköi. Ensin p763215- 863152
- 632397
Keskisen kyläkaupassa Temun vaatteita myynnissä?
Siis mitä? Miksi siis ei itse tilaisi Temusta samoja.621796SÄHKÖLASKU 1600 EUROA Ei tässä ole mitään järkeä
https://www.is.fi/taloussanomat/art-2000011804443.html Kyllä täysin huijausta nämä sähkömarkkinat. Varsinkin pörssisähk2171272Nanna Karalahti :Paljastus bisneksistä Jere Karalahden kanssa!
Ottanut yhteyttä seiskalehden toimittajaan ja kertonut totuuden yhteisestä Herotreeni-nimisestä verkkovalmenuksesta.1281253Mitä se olisi
Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?411235