SELECT s.testi_nimi, a.henk_id, a.sukunimi
FROM henkilo a, muu s
WHERE a.henk_id = s.henk_id
ORDER BY s.henk_nimi
Olettaen, etten munannut tuota äsken kirjoittaessa, kun en jaksanut copy - pasteta, niin tuon pitäisi olla toimiva yksinkertainen kysely.
Oletetaan, että tulos olisi tuommoinen
testi6 4 keskinen
testi12 7 miettinen
testi12 5 soini
testi 16 2 kalkka
Haluaisin, että se olisi
testi6 4 keskinen
testi12 7 miettinen
------ 5 soini
testi 16 2 kalkka
ja tuon ----- paikalla ei siis olisi mitään.
Kyllä tuo pitäisi osata, ennenkin olen tehnyt, mutta nyt ei ajatus kulje ollenkaan. Mahdoinkohan edes kysyä oikeaa asiaa...
SQL kysymys
??????????
41032
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 4
Vanhimmat
Muuta henk_id 5:n testi_nimi kyseiseksi viivaksi (-------). Ei tietokantaan saa sellaista mitä siellä ei ole. Ainakaan kyseisellä kyselyllä.
Siis noita testi nimiä olisi tarkoitus tulla vain yksi samanlainen. Eli testi12 ei saisi näkyä kahdesti, vaan toisen tilalle tulisi tyhjää, olettaen, että siihen liittyviä henk_id on useampia. Varmaan jotain joinia pitäisi käyttää. Voin olla väärässä.
Mitä ajat takaa tuolla? Jos muu taulussa ei ole tarkoitus olla duplikaattinimiä, niin mikset hävitä sieltä niitä duplikaatteja ja laita vaikka uniikki indeksiä?
En nyt ihan sataprosenttisen varmasti väitä, mutta ei taida ihan helposti onnistua perus SQL:llä. Miten olisi vaikka proseduuri, joka vaihtaisi duplikaattinimet viivoiksi ennen palautusta? En kyllä ymmärrä miksi tuo pitäisi tehdä. Vaikuttaisi käyttöliittymäpuolen muokkaukselta ja niiden paikka on jossain muualla kuin kyselyn osana.