[ XGhost @ 23.05.2013. 23:34 ] @
Imam upit

select broj_karte,naziv from clanovi
UNION
select broj_karte,naziv from gosti
where broj_karte = 11/2013

dobijem rezultat
----------------------
broj_karte naziv
--------------------------------
11/2013 ime1
12/2013 ime2
17/2013 ime3
--------------------

problem je sto upit uopce ne registrira uslov u where klauzuli

probao sam sve moguce varijante i nista opet mi prikazuje sve tj kompletne podatke
obe tabele
probao sam i UNION ALL opet isto
[ bogdan.kecman @ 23.05.2013. 23:57 ] @
zagrade?
[ XGhost @ 24.05.2013. 00:50 ] @
Gdje trebam staviti zagrade

[Ovu poruku je menjao XGhost dana 24.05.2013. u 02:08 GMT+1]
[ Shinhan @ 24.05.2013. 09:09 ] @
Kad Bogdan spominje zagrade, on verovatno misli na implicitne zagrade.
To jest, ako ne staviš nigde zagrade onda MySQL tretira tvoj upit kao da si napisao sledeće zagrade:

Code:

(select broj_karte,naziv from clanovi)
UNION
(select broj_karte,naziv from gosti
where broj_karte = 11/2013)


Pretpostavljam da si u stvari hteo sledeće:

Code:

(select broj_karte,naziv from clanovi
where broj_karte = 11/2013)
UNION
(select broj_karte,naziv from gosti
where broj_karte = 11/2013)


Preporučio bi ti da detaljno pročitaš UNION syntax članak u dokumentaciji.
[ XGhost @ 24.05.2013. 09:59 ] @
opet isto tj prikazuju se podaci ali se ne vrsi filtriranje
po where klauzuli odnosno dobijem iste podatke kao i
bez zagrade
[ djoka_l @ 24.05.2013. 10:13 ] @
Da li si napisao doslovno:

WHERE broj_karte=11/2013

Znaš, znak "/" predstavlja u matematici oznaku za deljenje, pa je to isto kao da si napisao

WHERE broj_karte=0.00546448087431693989071038251366

što je rezultat deljenja 11 sa 2013. Treba

WHERE broj_karte='11/2013'

tj.
Code (sql):

(SELECT broj_karte,naziv FROM clanovi
WHERE broj_karte = '11/2013')
UNION ALL
(SELECT broj_karte,naziv FROM gosti
WHERE broj_karte = '11/2013')
 
[ XGhost @ 24.05.2013. 10:21 ] @
Radi hvala na pomoci