Forum » Programiranje » [Access, Sql] Pogoji pri poizvedbah
[Access, Sql] Pogoji pri poizvedbah
balocom ::
Mam eno težavo z Accesom pri poizvedbah in sicer pri pogojih. V poizvedbo dam 2 tabeli (recimo tabela živali in tabela hran za njih ter seveda zaloge). No, ko poizvedbo naredim, mi vrže ven vse kobinacije (8 živali, 8 različnih jedi->64 izpisov ), jaz bi pa rad samo 1 izpis za vsako žival ter nato hrano. Poskušal sm z [vrsta].[živali]=[žival].[hrana], a na začetku hoče vnos in ga pač dam, nato pa izpiše vse oz. če sta vnosa različna nič
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man
appz ::
Sicer ne vem ce te prav razumem kaj bi rad.
Ce imas 2 tabele (zival,Hrana) in ce imas pri obeh primarni kljuc ter potem obe ustrezno povezani bi moralo bi to to; poivedba te vprasa za ime katerega mores ustrezno vpisati
SELECT zival.Ime, Hrana.Naziv, [zival] AS Ime
FROM zival INNER JOIN Hrana ON zival.idZival = Hrana.idZival
WHERE ((([zival])=[zival].[ime]));
ali pa brez vpisa imena zivali - poizvedba vrne za vsako zival katera hrana mu pripada!
SELECT zival.idZival, zival.Ime, Hrana.Naziv
FROM zival INNER JOIN Hrana ON zival.idZival = Hrana.idZival;
To je vse pod pogojem ce sem te prav razumel!
lp
Ce imas 2 tabele (zival,Hrana) in ce imas pri obeh primarni kljuc ter potem obe ustrezno povezani bi moralo bi to to; poivedba te vprasa za ime katerega mores ustrezno vpisati
SELECT zival.Ime, Hrana.Naziv, [zival] AS Ime
FROM zival INNER JOIN Hrana ON zival.idZival = Hrana.idZival
WHERE ((([zival])=[zival].[ime]));
ali pa brez vpisa imena zivali - poizvedba vrne za vsako zival katera hrana mu pripada!
SELECT zival.idZival, zival.Ime, Hrana.Naziv
FROM zival INNER JOIN Hrana ON zival.idZival = Hrana.idZival;
To je vse pod pogojem ce sem te prav razumel!
lp
balocom ::
fora je da mi access ne pogleda v vrstico , ki jo izpisuje po imenu [vrsta].[živali] ter po [žival].[hrana], ter od tam jemle podatke za pogoj za tisto vrstico. In jst bi rad mel da ne izpiše vseh kombinacij, ampak samo tiste vrstice kjer so [vrsta].[živali] ter [žival].[hrana] enake. Če pa tam dam pogoj, pa me na začetku vpraša za [vrsta].[živali] ter [žival], nato pa to upošteva za celo tabelo . Če je pa kje FALSE pa seveda sploh ne izpiše tabele .
EDIT: Če dam namesto [vrsta].[živali]=[žival].[hrana] SQL stavek (oz. naj bi bil...) me vsaj ne vpraša za vnos ampak kr direkt nič ne izpiše.
"WHERE (SELECT model FROM Orožje) =( SELECT Naziv FROM naboji)" -seveda če je prov
P.S. Ali je možno da Access ob enem napačnem pogoju vzame za celo tabelo FALSE in nič ne izpiše ?
EDIT: Če dam namesto [vrsta].[živali]=[žival].[hrana] SQL stavek (oz. naj bi bil...) me vsaj ne vpraša za vnos ampak kr direkt nič ne izpiše.
"WHERE (SELECT model FROM Orožje) =( SELECT Naziv FROM naboji)" -seveda če je prov
P.S. Ali je možno da Access ob enem napačnem pogoju vzame za celo tabelo FALSE in nič ne izpiše ?
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man
Zgodovina sprememb…
- spremenil: balocom ()
appz ::
najprej mi povej kako ti izgledeajo tabele! napisi kaj imas v posamezni tabeli (imena stolpcev)
"[vrsta].[živali]=[žival].[hrana]" - po tem sodec imas tabelo vrsta ter tabelo zival, ampak ta enakost ne pomeni nic, ker primerjas stolpec zivali (zirafa) z stolpcem hrana (polenta).
tudi to "WHERE (SELECT model FROM Orožje) =( SELECT Naziv FROM naboji)" ne pomeni nic, ker enacis (v kolikor je tako) model orozja (npr. magnum44) z nazivom nabojev (npr. 8mm) - izpis je 0 !! Praviloma bi moralo biti tako "WHERE (SELECT idModel FROM Orožje) =( SELECT idModel FROM naboji)" --- kar pomeni, da je idModel v tabeli Orozje primarni kljuc ter idModel v tabeli naboji tuj kljuc!! Razumes?
torej ce hoces neko konkretno pomoc mal bolj opisi kaj imas v tabeli
lp
"[vrsta].[živali]=[žival].[hrana]" - po tem sodec imas tabelo vrsta ter tabelo zival, ampak ta enakost ne pomeni nic, ker primerjas stolpec zivali (zirafa) z stolpcem hrana (polenta).
tudi to "WHERE (SELECT model FROM Orožje) =( SELECT Naziv FROM naboji)" ne pomeni nic, ker enacis (v kolikor je tako) model orozja (npr. magnum44) z nazivom nabojev (npr. 8mm) - izpis je 0 !! Praviloma bi moralo biti tako "WHERE (SELECT idModel FROM Orožje) =( SELECT idModel FROM naboji)" --- kar pomeni, da je idModel v tabeli Orozje primarni kljuc ter idModel v tabeli naboji tuj kljuc!! Razumes?
torej ce hoces neko konkretno pomoc mal bolj opisi kaj imas v tabeli
lp
balocom ::
ker primerjas stolpec zivali (zirafa) z stolpcem hrana (polenta).
Ne, primerjam stolpec žival (vrsta-opica) z stolpcem oz. tablo hrane (seveda vsto živali za katero je hrana-torej opica, ne pa banane).
Sm ne vem zakaj hoče vnos pri odpiranju, ne pa da si za vsako vrstico sam podatke potegne .
Tabele so:
Orožje:
Proizvajalec
ID
Model
št. kosov
Naboji:
kaliber
model (seveda to pomeni za ker model v tabeli orožja so narejni)
količina (stanje zalog)
Ne, primerjam stolpec žival (vrsta-opica) z stolpcem oz. tablo hrane (seveda vsto živali za katero je hrana-torej opica, ne pa banane).
Sm ne vem zakaj hoče vnos pri odpiranju, ne pa da si za vsako vrstico sam podatke potegne .
Tabele so:
Orožje:
Proizvajalec
ID
Model
št. kosov
Naboji:
kaliber
model (seveda to pomeni za ker model v tabeli orožja so narejni)
količina (stanje zalog)
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man
appz ::
SELECT Orozje.model, Orozje.Proizvajalec, Naboji.Kaliber
FROM Orozje INNER JOIN Naboji ON Orozje.model = Naboji.Model;
tole pri meni dela BP ... izpise tocno to kar zahtevas ..(ustvarjeno na podlagi tvojih podatkov)
opomba: ker imas tabele narejene tako (ocitno brez primarnih kljucev) in imas povezavo po Modelu (ne priporocam) - imas narejene relacije med tabelama?
lp
FROM Orozje INNER JOIN Naboji ON Orozje.model = Naboji.Model;
tole pri meni dela BP ... izpise tocno to kar zahtevas ..(ustvarjeno na podlagi tvojih podatkov)
opomba: ker imas tabele narejene tako (ocitno brez primarnih kljucev) in imas povezavo po Modelu (ne priporocam) - imas narejene relacije med tabelama?
lp
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL developerOddelek: Šola | 1582 (1160) | HotBurek |
» | Podatkovne baze - SQL enostavne poizvedbeOddelek: Programiranje | 2077 (1670) | galu |
» | Baza & c#Oddelek: Programiranje | 4181 (3239) | xardas |
» | [Oracle] Osnovno povpraševanje problemOddelek: Programiranje | 1931 (1572) | zdravc |
» | [C#] izdelava tabeleOddelek: Programiranje | 2001 (1827) | majoneza |