MySQL - ordenar consulta con UNION

 
Vista:

ordenar consulta con UNION

Publicado por rosendo (4 intervenciones) el 29/06/2006 21:23:21
Hola buenas, tengo un problema al ordenar una consulta,

tengo la siguiente tabla:

CREATE TABLE tabla1(
tipo INTEGER NOT NULL,
elemento INTEGER NOT NULL,
orden INTEGER,
PRIMARY KEY(tipo,elemento)
)
y meto los siguientes valores
INSERT INTO tabla1 VALUES
(1,1,1),
(1,2,2),
(2,1,2),
(2,2,1);

Yo quiero sacar valores en función del tipo y ordenarlos por el atributo 'orden'

si hago consultas simples y ordeno por el campo 'orden' lo hace bien,

SELECT tipo, elemento, orden FROM tabla1 WHERE tipo = 2 ORDER BY orden;

la salida es
2 , 2 , 1
2 , 1 , 2

pero si quiero que saque el resultado para varios tipos y dentro de cada tipo, ordenado por el atributo orden, se me ocurre la siguiente consulta,

(SELECT tipo, elemento, orden FROM tabla1 WHERE tipo = 1 ORDER BY orden)
UNION
(SELECT tipo, elemento, orden FROM tabla1 WHERE tipo =2 ORDER BY orden);

que en teoria debería darme
1 , 1 , 1
1 , 2 , 2
2 , 2 , 1
2 , 1 , 2

pero el segundo grupo lo ordena mal me sale
1 , 1 , 1
1 , 2 , 2
2 , 1 , 2
2 , 2 , 1

Alguien sabe por qué no lo ordena bien, o cómo puedo hacer para ordenarlo?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ordenar consulta con UNION

Publicado por Public (21 intervenciones) el 30/06/2006 09:09:04
Te he respondido en el foro del guru de programación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar