[ 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.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.