[ TheBatA @ 18.10.2007. 20:55 ] @
Imam 2 tabele u bazi:


Tabela1
------------------
PK | Artikal
PK | IDProizvodjaca
------------------


Tabela2
-----------------------
PK,FK1 | Artikal
PK,FK1 | IDProizvodjaca
Selektovan
-----------------------

T2 je preko FK1 povezana sa T1.

Potrebna mi je WHERE klauzula koja se dodaje na upit "SELECT * FROM Tabela1 " i kojom bi se dobili samo redovi koji postoje u T2 i kod kojih je "Selektovan = true".

Da li je ovo izvodljivo?

Problem mi rešava samo WHERE klauzula, bez JOIN-a, parametara i sl.

Koristim MS SQL 2005 i WHERE klauzula mi treba kao string za C# aplikaciju, koja već ima odrađen SELECT deo.

Slikovit primer (koji ne radi! ): Kada bi moglo da se napiše nešto kao "WHERE Artikal, IDProizvodjaca IN (SELECT Artikal, IDProizvodjaca FROM Tabela2 WHERE Selektovan=true)" to bi mi rešilo sve probleme, ali ne može bre tako

Probao sam razne kombinacije sa IN, ali ne pomaže.

Ima li neko ideju?

Hvala!
[ chachka @ 18.10.2007. 21:03 ] @
Code:
WHERE EXISTS (SELECT t2.Selektovan
                FROM Tabela2 t2
               WHERE t2.Artikal = Artikal
                 AND t2.IDProizvodjaca = IDProizvodjaca
                 AND t2.Selektovan=true)
[ Fedya @ 18.10.2007. 21:05 ] @
Ne razumem zasto ne moze join? Jednostavan inner join sa where selektovan=true bi ti vration tacno ono sto ocekujes...
Mada ako bas moras mozes da resis sa where exists...
[ chachka @ 18.10.2007. 22:03 ] @
Verovatno se koristi nekakav Application Framework koji ne podnosi JOIN.
[ TheBatA @ 22.10.2007. 19:38 ] @
Citat:
chachka
Code:
WHERE EXISTS (SELECT t2.Selektovan
                FROM Tabela2 t2
               WHERE t2.Artikal = Artikal
                 AND t2.IDProizvodjaca = IDProizvodjaca
                 AND t2.Selektovan=true)


Hvala, ovo mi završava posao!

Citat:
chachka: Verovatno se koristi nekakav Application Framework koji ne podnosi JOIN.


Radim sa komponentom koja ima razrađen mehanizam za upoređivanje, i očekuje samo WHERE klauzulu.