SQL problem?

Banovani

Aktivan član
Poruka
1.559
Moze li neko da mi pomogne da resim ovo.
Imam tri tabele

FIRMA
PROIZVOD
SLIKE

U tabeli FIRMA imam sledeca polja od znacaja za ovaj problem

ID_FIRME

U tabeli PROIZVOD imam
ID_PRO -id proizvoda
ID_FIRM - isto kao i ID_FIRME ukazuje na to od koje firme je proizvod
IME_PROIZVODA

U tabeli SLIKE - tabela sa linkovima do slika proizvoda
ID_PROV - id proizvoda da ukaze od kog je proizvoda slika
ID_FIRMA - id firme da ukaze od koje je fime proizvod


Sta je problem kako god napravim SELECT upit on mi izlista proizvode sto je dobro ali mi i pored onih gde nisam ubacio sliku izbaci sliku. Treba da mi izlista sve proizvode ali tamo gde nisam ubacio sliku da mi ne izbaci sliku a tamo gde sam ubacio sliku da mi izbaci slku.

Hvala unapred na pomoci :D
 
A zasto imas posebnu tabelu sa slikama? Ako svaki proizvod ima samo jednu sliku, to ni nije potrebno, nego u tabeli sa proizvodima dodaj polje sa lokalcijom slike.
Ako neces da ti prikazuje proizvode gde nema slika, daj mu na kraju
WHERE Slika <> ""
 
A zasto imas posebnu tabelu sa slikama? Ako svaki proizvod ima samo jednu sliku, to ni nije potrebno, nego u tabeli sa proizvodima dodaj polje sa lokalcijom slike.
Ako neces da ti prikazuje proizvode gde nema slika, daj mu na kraju
WHERE Slika <> ""

Hvala na odgovor.
Svaki proizvod ima vise slika. I problem je u tome sto ako imam proizvod A kome sam dodao sliku i proizvod B kome nisam. On ce tu sliu od proizvoda A da prikaze i uz proizvod a i uz proizvod B.
 
Prvo što mi pada na pamet, iz ovoga što si rekao, je da ti nije dobar model. Naime, firma i proizvod su spojeni relacijom 1..* (to si i rekao). Trebalo bi da i proizvod-slike budu spojeni 1..*. Onda moraš imati jedan ID_Slike kao primarni ključ i da spojiš proizvod i slike po ID_Firme i ID_Pro. Onda u upitu staviš, što ti je Pjer rekao, i to će biti ok. Zakači bazu i napiši SQL upit, biće lakše. Nadam se da sam ti bio od pomoći.
 
Evo baze
http://rapidshare.com/files/118665655/buckadvertisement.mdb.html

i evo upita

sql = "SELECT * FROM PROIZVOD , FIRMA, SLIKE WHERE (ID_FIRME=ID_FIR AND ID_FIR=ID_FIRM AND BR_SLIKA=0" & " " & "AND" & " " & "ID_FIR=" & id & ")" & " " & "OR" & " " & "(ID_FIRME=ID_FIR AND ID_FIR=ID_FIRM AND ID_PRO=ID_PROV AND BR_SLIKA>0" & " " & "AND" & " " & "ID_FIR=" & id & ")"

id je identifikacion broj firme koji se skuplja kao cookies prilikom logovanja i prosledjuje dalje po potrebi.
 
Hvala svima na pomoci pronasao sam propust evo ga resenje


sql = "SELECT * FROM PROIZVOD , FIRMA, SLIKE WHERE (ID_PRO=ID_PROV AND ID_FIRME=ID_FIR AND ID_FIR=ID_FIRM AND BR_SLIKA=0 AND NOT BR_SLIKA<>0" & " " & "AND" & " " & "ID_FIR=" & id & ")" & " " & "OR" & " " & "(ID_PRO=ID_PROV AND ID_FIRME=ID_FIR AND ID_FIR=ID_FIRM AND ID_FIRME=ID_FIR AND ID_PRO=ID_PROV AND BR_SLIKA>0 AND NOT BR_SLIKA=0" & " " & "AND" & " " & "ID_FIR=" & id & ")"
 

Back
Top