Problem sa SQL upitom...

Problem sa SQL upitom...

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Pa naravno, kad si lose postavio OR vezu...
br 1. select * kad imas vise tabela ne funkcionise dobro. Stavi tacno polja koja hoces.

Evo kako tvoj zapis treba da izgleda

SELECT polje1,polje2..... FROM ModuleControl
LEFT JOIN Modules on (ModuleControl.ModuleId=Modules.ModuleId)
WHERE ModuleControl.ShowOnAllPages=1
AND ModuleControl.PageId= :param

Ovo ce ti prikazati i one module gde ne postoji rekord za dati ModuleControl=1. Ne znam da li je bas to sto hoces.
Ako hoces 1:1, zameni LEFT sa INNER



offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Sql upit koji si mi dao mi je vratio jedan zapis potpuno prazan.

Ja sam napravio jednu gresku.
Citat:
Ono sto ja zelim jeste sql upit koji ce mi vratiti zapise koji imaju bilo koju vrednost pageid atributa i da im je showonallpages setovan.


Ovo podebljano je greska tako da zapravo recenica treba da glasi:

Citat:
Ono sto ja zelim jeste sql upit koji ce mi vratiti zapise koji imaju vrednost PageId trenutne stranice i kojima je ShowOnAllPages=1


Previd.

Pomgao si mi da razmislim malo bolje i napisao sam Sql koji mi je vratio ono sto sam trazio u ispravljenoj recenici, ali to ne valja, jer se kasnije desavaju problemi.

SELECT * FROM ModuleControl, Modules WHERE ModuleControl.PageId=1 And ModuleControl.ShowOnAllPages=1 or ModuleControl.ModuleId=Modules.ModuleId;

Kao sto sam napisao, ovo je experimentalna baza pa sam zato i stavljao Select *.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

OR ne moze da ide bez zagrade. Sta je ovde OR?
(ModuleControl.PageId=1 And ModuleControl.ShowOnAllPages=1) OR ...
ili je (ModuleControl.ShowOnAllPages=1 or ModuleControl.ModuleId=Modules.ModuleId)

Vraca ti nepredvidive rezultate. Nikad ne stavljaj OR bez zagrade

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Sredio sam, posto je ovaj experiment radim nad Access bazom uslov ShowOnAllPages=1 je trebao da glasi ShowOnAllPages=true.
Glupa greska, ali tako je.

Where (ModuleControl.PageId=2 or ModuleControl.ShowOnAllPages=true) and ModuleControl.ModuleId=Modules.ModuleId;

Ko je trenutno na forumu
 

Ukupno su 1384 korisnika na forumu :: 26 registrovanih, 4 sakrivenih i 1354 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: aleksandarbl, Alibaba1981, aramis s, bojcistv, Bubimir, CikaKURE, comi_pfc, cvrle312, Dimitrise93, djboj, Dorcolac, galijot, hyla, janbo, Luka Blažević, Mi lao shu, milimoj, novator, Outis, shaja1, Trpe Grozni, VJ, Vlada1389, vukdra, Wrangler, zziko