Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prost upit koji ne znam da resim

[es] :: Baze podataka :: Prost upit koji ne znam da resim

[ Pregleda: 2562 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Arbitar2
Arbitar2
Serbia

Član broj: 51869
Poruke: 39
*.dynamic.sbb.co.yu.



Profil

icon Prost upit koji ne znam da resim25.06.2007. u 09:54 - pre 204 meseci
Pozdrav ,

Imam problem oko upita mada nisam vican posebno sql-u.Naime, imam dve tabele recimo Radnik i projekat koje su povezane relacijom OneToMany.
Interesuje me kako bi izgledao upit na osnovu :" Izberi mi sve radnike koje se nalaze i u projektu1 i u projektu2 ".Koristim Hibernate Query language.

Srdacno,
Mb
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Prost upit koji ne znam da resim25.06.2007. u 10:02 - pre 204 meseci
Po svemu sudeci, nedostaje ti treca tabela, kojom povezujes radnike i projekte.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Prost upit koji ne znam da resim25.06.2007. u 10:16 - pre 204 meseci
Citat:
broker: Po svemu sudeci, nedostaje ti treca tabela, kojom povezujes radnike i projekte.

Odnosno, many-to-many odnos umesto one-to-many.
 
Odgovor na temu

Arbitar2
Arbitar2
Serbia

Član broj: 51869
Poruke: 39
*.dynamic.sbb.co.yu.



Profil

icon Re: Prost upit koji ne znam da resim25.06.2007. u 10:16 - pre 204 meseci
Posto radim sa O/R , nije mi potrebna vezna tabela jer je sam Hibernate odradi u bazi.( Ja sam samo uprostio pitanje,inace povezano je sa 4 tabele)Ali ajde recimo da imam i trecu tabelu kako bi izgledao upit?
Ja sam pokusao sa
Code:

Select * from Radnik r join Project p where p in(Select * from Project pp where pp.name='Projekat1' or pp.name='Projekat2')


Pozdrav
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Prost upit koji ne znam da resim25.06.2007. u 11:08 - pre 204 meseci
Može na više načina. Npr:
Code:

select *
from radnik r
inner join radnikprojekat rp1 on r.id = rp1.radnikid
inner join projekat p1 on p1.id = rp1.projekatid
inner join radnikprojekat rp2 on r.id = rp2.radnikid
inner join projekat p2 on p2.id = rp2.projekatid
where
p1.imeprojekta = 'projekat1'
and p2.imeprojekta = 'projekat2'

 
Odgovor na temu

ffb
programer projektant
Pančevo

Član broj: 77308
Poruke: 22
*.net
Via: [es] mailing liste



Profil

icon Re: Prost upit koji ne znam da resim25.06.2007. u 11:25 - pre 204 meseci
>
" Izberi mi sve radnike koje se nalaze i u projektu1 i u projektu2 "

Code:

Select * from Radnik r where r.id in
                                (Select radnik_id, count(*) as broj   
from Project pp
                                                       where 
pp.name='Projekat1' or pp.name='Projekat2'
                                                       group by radnik_id 
                                                             having broj=2
                                )
 
Odgovor na temu

Arbitar2
Arbitar2
Serbia

Član broj: 51869
Poruke: 39
*.dynamic.sbb.co.yu.



Profil

icon Re: Prost upit koji ne znam da resim25.06.2007. u 11:54 - pre 204 meseci
Code:


Select * from Radnik r where r.id in
                                (Select radnik_id, count(*) as broj   
from Project pp
                                                       where 
pp.name='Projekat1' or pp.name='Projekat2'
                                                       group by radnik_id 
                                                             having broj=2
                                )


Ovako mi izbacuje radnike koji su u projektu1 ili u projektu2,mada sam siguran da bi ovo trebalo da radi.
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.yubc.net.



Profil

icon Re: Prost upit koji ne znam da resim25.06.2007. u 11:56 - pre 204 meseci
Jedna tabela, RADNIK:
Code:

create table radnik (
 id_radnik integer not null,
 ime varchar(20),
 prezime varchar (20)

 constraint pk_radnik primary key (id_radnik)
);

Druga tabela, PROJEKAT:
Code:

create table projekat (
 id_projekat integer not null,
 naziv varchar(50),
 
 constraint pk_projekat primary key (id_projekat)
);

Treća, kreira vezu, POSAO, npr. jedan radnik na jednom projektu:
Code:

create table posao (
 id_radnik integer not null,
 id_projekat integer not null,
 
 constraint pk_posao primary key (id_radnik, id_projekat),

 constraint fk_posao_radnik foreign key (id_radnik)
  references radnik (id_radnik) on delete cascade on update cascade,

 constraint fk_posao_projekat foreign key (id_projekat)
  references projekat (id_projekat) on delete cascade on update cascade
);

Upit kojim možeš dobiti rezultat je:
Code:

select r.ime, r.prezime, p.naziv
from ((posao pos
 left join radnik r on pos.id_radnik = r.id_radnik)
 left join projekat p on pos.id_projekat = p.id_projekat)
where pos.id_projekat = neka_vrednost
or pos.id_projekat = neka_vrednost_1

BTW, iz glave, ali suština je to. Tabele su trivijalne. Imaš i na samom forumu primera za to.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

Ana Komazec
Beograd

Član broj: 76433
Poruke: 22
*.adsl-2.sezampro.yu.

ICQ: 274954884


Profil

icon Re: Prost upit koji ne znam da resim01.07.2007. u 11:46 - pre 204 meseci
Mozda moze ovako :

Code:
 
Select * 
From Radnik
Where id in (Select id From Project Where ime= "Project1" or ime="Project2" Group by id Having Count(id)=2)   




Pozdrav

[Ovu poruku je menjao Ana Komazec dana 01.07.2007. u 13:01 GMT+1]

[Ovu poruku je menjao Ana Komazec dana 01.07.2007. u 13:03 GMT+1]
 
Odgovor na temu

[es] :: Baze podataka :: Prost upit koji ne znam da resim

[ Pregleda: 2562 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.