[ negyxo @ 04.11.2004. 13:08 ] @
Prvo me interesuje nesto u vezi join-iranja Radim u MSDE-u i interesuje me kako je bolje da se pise query prilikom joiniranja. Evo primera: U jednoj tabeli se nalaze radnici i njihovi podaci Radnik --------------------------------------------------- sifraRadnika imeRadnika sifraMestaStanovanja adresa --------------------------------------------------- dok je druga tabela cuva podatke o mestima Mesto --------------------------------------------------- sifraMesta imeMesta --------------------------------------------------- Sad ukoliko bi hteo da join-iram mesta sa radnicima pisao bi SELECT * FROM Radnik INNER JOIN Mesto ON Mesto.SifraMesta = Radnik.sifraMestaStanovanja i ovo bi radilo lepo ali sta ako hocu da ucitam radnike koji su na primer iz nekog mesta recimo beograd (neka je onda sifra 11000) onda bih pisao sledeci upit SELECT * FROM Radnik INNER JOIN Mesto ON Mesto.SifraMesta = Radnik.sifraMestaStanovanja WHERE sifraMestaStanovanja = 11000 ili mozda ovako SELECT * FROM Radnik INNER JOIN (SELECT * FROM Mesto WHERE sifraMesta = 11000) AS M ON M.SifraMesta = Radnik.sifraMestaStanovanja sta je bolje od ova dva upita pisati i kada? Znam da je pitanje relativno ali mene interesuje prvenstveno praksa drugih. Drugo sto me interesuje je jedno logicko resenje. Uvek su mi bili problem podaci koji se vezuju za vreme tj. ni danas nisam siguran kako ih resavam a problem je u sledecem neka je opet u pitanju ona tabela Radnik e sad problem je sta da radim sa siframa radnika koji moraju biti jedinstveni ali jedinstveni na nivou godine tj. uvek sifraRadnika ostaje ista ali podaci se tokom godine menjaju za radnika pa se na pocetku svake godine moraju upisati svezi podaci za radnike. Primer u 2001 godini podaci su sledeci sifraRadnika | imeRadnika | Adresa ---------------------------------- 1 | Pera | nnn 1 2 | Marko | nnn 2 u 2003 godini doslo je do promene adresa pa sad izgleda ovako sifraRadnika | imeRadnika | Adresa ---------------------------------- 1 | Pera | mmm 8 2 | Marko | mmm 9 znaci sve sto se promenilo su adrese radnika a sifra im je ostala ista. Sad problem lezi u tome kad se radi prikaz onda bi se ovi podaci morali vezati za godinu pa se tako iscitavati. Ovo onda povlaci i drugciju strukturu tabele i gomilanje podataka iz godine u godinu i dodatnu kompleksnost prilikom pisanja query-ija. I za ovaj problem me insteresuju resenja drugih. Toliko za ovaj put Pozdrav |