[ Mirko BGD @ 24.07.2014. 09:56 ] @
pozz
imam bazu podataka it opreme
neke od tabela su mi
monitor sa kolonama monitor id, marka, model, sn
stampac stampac id, marka, model, sn
PC pc id, sn,

i spustaju se foreign keys od monitora i stampaca u tabelu PC

e sad ono sto meni treba je da generisem izvestaj gde cu moci da vidim SN PC, marku model stampaca, marku model monitora itd

da li je to moguce odraditi?
[ Dusan Kondic @ 24.07.2014. 10:20 ] @
Postoji mnogo načina da se ovo izvede. Evo jednog.
Pošto tabele imaju polje "sn" pretpoostavljam da u njima čuvaš podatke o svakom pojedinačnom uređaju, a ne njegovom tipu. U tom slučaju možeš svakoj ovoj tabeli da dodaš polje PCId u kome bi upisivao Id PC-a kome taj uređaj ili komponenta pripada. U slučaju da uređaj ne pripada niti jednom PC-u, njegova vrednost može da bude npr. "0", "NULL" ili neki rezervisani broj.
Pošto će se ovo polje nalaziti u JOIN i WHERE klauzulama, možda je najbolje da u tabelu PC uneseš "Nepostojeći PC" pa da njegov Id dodeljuješ uređajima koji nisu dodeljeni ni jednom PC-u. Na ovaj način možeš da podigneš relacije između tabela i time učiniš bazu stabilnijom i bržom.
Pozdrav
[ djoka_l @ 24.07.2014. 10:47 ] @
Ne znam zašto je teško napraviti create table naredbe i insert test podataka, kada se postavljaju ovakva pitanja. Dakle uz mnogo pretpostavki i bez testnih podataka da bih testirao upit evo, ad-hoc rešenje

Code (sql):

SELECT p.sn, m.marka, m.model, s.marka, s.model
FROM pc p
LEFT OUTER JOIN monitor m ON p.monitor_id = m.id
LEFT OUTER JOIN stampac s ON p.stampac_id = s.id
 
[ Mirko BGD @ 24.07.2014. 13:16 ] @
evo je od prilike slika kako to sve izgleda: