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 779 korisnika na forumu :: 26 registrovanih, 4 sakrivenih i 749 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: A.R.Chafee.Jr., amonsrb, babaroga, Bogoslov, dika69, doktor1964, Drug pukovnik, goxin, lavi, Lord Nem, Luka1998, mean_machine, Mikulino, Milan A. Nikolic, miljannis, Oluj2.1, Polemarchoi, rovac, Sirius, Snorks, Srki98, trajkoni018, VJ, voja64, xJeremijAx, zziko