Hej. Jeg har et problem med UNION, enter gør jeg noget helt forkert, ellers har jeg bare ikke forstået hvordan UNION fungerer.
Problemet jeg vil have løst er følgende.
Jeg har 1 tabel som bl.a. indeholder felterne rating og stemmer (det er en del af et karakter-system) hvor rating er karakteren og stemmer er antallet af afgivede stemmer.
Jeg vil så vælge alle poster i tabellen. Først vil jeg have alle poster hvor stemmer er over eller lig 3. Disse skal sorteres efter rating. Derefter (i samme resultat-sæt) vil jeg vælge alle poster hvor stemmer er under 3, disse sorterer jeg også efter rating.
Det gør jeg ved hjælp af UNION
- (SELECT * FROM film WHERE stemmer >= 3 ORDER BY rating DESC) UNION (SELECT * FROM film WHERE stemmer < 3 ORDER BY rating DESC)
Problemet er bare det ikke virker. Hver for sig virker queries'ne som de skal. Men når jeg bruger dem med UNION går det helt galt.
Her er et screenshot som viser fejlen
http://img181.imageshack.us/my.php?image=unionwi5.pngSom I kan se tager den dem der har over 3 stemmer først, og under 3 stemmer bagefter. Men sorteringen er helt forkert.
Hvad gør jeg galt?