Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Spajanje tabela operatorom AND

[es] :: Baze podataka :: Spajanje tabela operatorom AND

[ Pregleda: 2836 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zeljko b
NS

Član broj: 73033
Poruke: 15
*.ptt.yu.



Profil

icon Spajanje tabela operatorom AND17.02.2006. u 19:40 - pre 221 meseci
Pitanje se odnosi na kreiranje select iskaza i povezivanje rezultata operatorom AND
Npr. postoje dve tabele: knjige i pisci, i treca asocijativna tabela koja spaja knjige i pisce:
knjiga1:pisac1
pisac2
pisac3
knjiga2:pisac1
pisac2
knjiga3:pisac1
pisac3
Kako dobiti knjige koju su napisali i pisac1 AND pisac2. Ovo sam uradio formiranjem 2 temporary tabele:
CREATE TEMPORARY TABLE t1 SELECT nazivKnjige FROM knjiga_pisac WHERE pisac=pisac1
CREATE TEMPORARY TABLE t2 SELECT nazivKnjige FROM knjiga_pisac WHERE pisac=pisac2
t1=knjiga1
knjiga2
knjiga3
t2=knjiga1
knjiga2
i zatim spajanjem ove dve tabele po istoj knjizi dobijam konacan rezultat: knjiga1 i knjiga2
Ovo mi deluje prilicno komplikovano. Zar ne?
 
Odgovor na temu

Ana Komazec
Beograd

Član broj: 76433
Poruke: 22
*.adsl.sezampro.yu.

ICQ: 274954884


Profil

icon Re: Spajanje tabela operatorom AND17.02.2006. u 21:12 - pre 221 meseci
Probaj ovako:

Select nazivKnjige
From Knjiga_pisac
Where pisac=pisac1 or pisac=pisac2
Group by nazivKnjige
Having Count(nazivKnjige)>1

Ovo je neki pokushaj bez kreiranja temporary tabela...Takodje OR umesto AND ali mozda radi...
Pozdrav

[Ovu poruku je menjao Ana Komazec dana 17.02.2006. u 22:13 GMT+1]
 
Odgovor na temu

zeljko b
NS

Član broj: 73033
Poruke: 15
*.ptt.yu.



Profil

icon Re: Spajanje tabela operatorom AND17.02.2006. u 22:24 - pre 221 meseci
Radi u slucaju da ima samo jedano AND povezivanje ali ukoliko se to zeli sa n povezivanja onda ne radi. Upravo je to i razlog zasto sam odustao od privremenih tabela (jako se komplikuje proces)
 
Odgovor na temu

zeljko b
NS

Član broj: 73033
Poruke: 15
*.ptt.yu.



Profil

icon Re: Spajanje tabela operatorom AND17.02.2006. u 22:38 - pre 221 meseci
Mada izgleda radi ako se u klauzuli having stavi count>n-1
gde je n broj izraza koji se povezuju operatorm AND
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Spajanje tabela operatorom AND17.02.2006. u 22:48 - pre 221 meseci
Mozda bi mogao da iskoristis Union:

Code:

SELECT nazivKnjige FROM 
(SELECT DISTINCT nazivKnjige FROM knjiga_pisac WHERE pisac=pisac1 
UNION 
SELECT DISTINCT nazivKnjige FROM knjiga_pisac WHERE pisac=pisac2) AS Naslovi 
GROUP BY nazivKnjige 
HAVING COUNT(nazivKnjige) = 2


a za tri pisca bi bilo:
Code:

SELECT nazivKnjige FROM 
(SELECT DISTINCT nazivKnjige FROM knjiga_pisac WHERE pisac=pisac1 
UNION 
SELECT DISTINCT nazivKnjige FROM knjiga_pisac WHERE pisac=pisac2 
UNION 
SELECT DISTINCT nazivKnjige FROM knjiga_pisac WHERE pisac=pisac3) AS Naslovi 
GROUP BY nazivKnjige 
HAVING COUNT(nazivKnjige) = 3


To je ideja, ako ne radi izvini, nije da sam probao, vec ja to onako :)
 
Odgovor na temu

Ana Komazec
Beograd

Član broj: 76433
Poruke: 22
*.adsl.sezampro.yu.

ICQ: 274954884


Profil

icon Re: Spajanje tabela operatorom AND17.02.2006. u 22:50 - pre 221 meseci

Citat:
Mada izgleda radi ako se u klauzuli having stavi count>n-1
gde je n broj izraza koji se povezuju operatorm AND


Pa da, ovo je bio primer ako se trazi zajednicka knjiga 2 pisca, za tri bi bilo Count(nazivKnjiga)>2 itd.
U svakom sluchaju, OR bi trebalo staviti umesto AND, bar je meni na slichnom primeru radilo.
Pozdrav

[Ovu poruku je menjao Ana Komazec dana 17.02.2006. u 23:53 GMT+1]
 
Odgovor na temu

zeljko b
NS

Član broj: 73033
Poruke: 15
*.ptt.yu.



Profil

icon Re: Spajanje tabela operatorom AND18.02.2006. u 09:45 - pre 221 meseci
count(...) = n (lepse izgleda)
Hvala Ana
 
Odgovor na temu

Ana Komazec
Beograd

Član broj: 76433
Poruke: 22
*.adsl.sezampro.yu.

ICQ: 274954884


Profil

icon Re: Spajanje tabela operatorom AND18.02.2006. u 15:08 - pre 221 meseci
Citat:
count(...) = n (lepse izgleda)


Samo jedna napomena: Ukoliko stavish Count()=n, u rezultate ti nece uci knjige koje je pisao jos neki pisac sem trazenih. Npr. ukoliko su knjigu "Matematika" pisali Mika, Pera i Laza a u upitu ti stoji zahtev za prikazivanjem knjige koju su zajedno pisali Mika i Pera, kao i Count()=2, "Matematika" ti se nece prikazati u rezultatima jer je kod ove knjige Count()=3.
Znaci, sve zavisi od toga sta trazis. Count()=n je u redu samo ukoliko trazis knjigu koju su iskljucivo pisali Mika i Pera, i niko vishe.
U suprotnom, moze da stoji Count()>=n, da bi bile ukljucene i knjige koje imaju jos neke pisce osim navedenih.

Pozdrav
 
Odgovor na temu

[es] :: Baze podataka :: Spajanje tabela operatorom AND

[ Pregleda: 2836 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.