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 1079 korisnika na forumu :: 36 registrovanih, 7 sakrivenih i 1036 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: AK - 230, bokisha253, cavatina, Dežurni pod palubom, DPera, draganca, FileFinder, Georgius, jackreacher011011, jaeger, krkalon, Krusarac, kybonacci, laurusri, Magistar78, Milos82, milutin134, MiroslavD, mkukoleca, Nikolaa11, novator, pein, Povratak1912, Sirius, SlaKoj, stegonosa, Tas011, Toper, Trpe Grozni, uruk, VJ, vladas87, voja64, vukdra, yrraf, šumar bk2