[ Arbitar2 @ 19.01.2009. 23:41 ] @
Pozdrav,

Kreirao sam ER shemu koju mislim koristiti za jedan website za pretragu. Aplikacija bi trebalo da koristi Hibernate tako da cu vecinom koristiti Hql sintax-u(naravno moze i u SQL). Treba mi mala pomoc oko jednog upita za koji sam mislio da je malo laksi,a ispade obrnuto :(. Evo cemu se radi: Kreirani su entiteti : Auto, Karakteristika, Karakteristika_Opis(ne pitajte me odakle mi ovi nazivi:)). Karakteristika entitet prestavlja recimo Boja, Materijal, a Karakteristika_Opis predstavlja (ako je u pitanju karakteristika Boja) plava, zuta , zelena i/ili Materijal(Platno) Aluminijum, plastika itd. Relacija bi isla ovako:

Code:
 Auto >> OneToMany >> Karateristika >> OneToMany >> Karakteristika_Opis 


Tako da cemo da dobijemo npr: Auto sa Karakteristikama Boja i Materijal koje imaju Siva, Plava, Zuta , Crna i (slucaju da je materijal) i Plastika, Celik, Aluminijum.
Kako bi izgledao upit koji ce prikazati npr. automobile koji imaju obavezno boju sivu i plavu i obavezno materijal plastika i celik?

Hvala unapred!!
[ Arbitar2 @ 20.01.2009. 21:36 ] @
Neka ideja?
[ jablan @ 20.01.2009. 22:35 ] @
Verovatno postoji elegantniji način, ali dok ga neko ne ispiše, možda možeš na ovu foru:
Code:

SELECT a.id FROM auto a
INNER JOIN karakteristika k ON a.id = k.auto_id
INNER JOIN opis o ON k.id = o.karakteristika.id
WHERE o.naziv IN ('siva', 'plava', 'plastika', 'celik')
GROUP BY a.id
HAVING COUNT(DISTINCT o.id) = 4

BTW, ljudi, kačite skriptove sa create table i test podacima, tako ćete povećati verovatnoću da vam neko odgovori!