[ Ivand @ 26.01.2007. 20:40 ] @
Imam jedan manji problem sa unijom rezultata dva subquery-ja.

Iz prva sam bio naivan pa sam mislio da bi ovako nesto trebalo da radi.
Code:
SELECT * FROM tabela1 WHERE ID IN ( ovde je prvi subquery koji vraca niz ID-jeva iz druge tabele ) AND ID IN ( ovde je drugi subquery koji vraca niz ID-jeva iz trece tabele )


sql prodje bez problema ali drugi ID IN je totalno zanemaren.

Dalje sam pokusao ovako nesto, da napravim uniju rezultata ova dva subquery-ja ali dobijam gresku, sql ne prolazi...

Code:
SELECT * FROM wp_4_posts WHERE ID IN ( ovde je prvi subquery koji vraca niz ID-jeva iz druge tabele ) UNION ( ovde je drugi subquery koji vraca niz ID-jeva iz trece tabele )


Ideje?

Inace pronasao sam na netu da bi trebalo da radi ukoliko bi uniji dodelio alijas, ali ni ta verzija meni nije prosla.

verzija mysql-a 4.1
[ japan @ 27.01.2007. 05:17 ] @
pogresno si postavio zagrade. od ova dva podupita treba da formiras set, pa onda na osnovu njega da izvrsavas glavni upit. ovako kako si ti napisao, dobijas rekord upita po kriterijumu prvog podupita, pa onda gradis uniju sa rezultatom drugog podupita, pa je normalno da dobijas gresku zbog razlicitog broja kolona. proguglaj malo o prioritetima.

probaj ovako:

Code:
SELECT * FROM wp_4_posts WHERE ID IN ( ovde je prvi subquery koji vraca niz ID-jeva iz druge tabele UNION ovde je drugi subquery koji vraca niz ID-jeva iz trece tabele )