TABLA conceptos
(
id integer NOT NULL,
codigo character varying(20),
CONSTRAINT "Concpetos_pkey" PRIMARY KEY (id)
)
TABLA relacion
(
id integer NOT NULL,
id_padre integer,
id_hijo integer,
cantidad numeric(7,3),
posicion smallint
CONSTRAINT "Relacion_pkey" PRIMARY KEY (id)
)
La tabla relación sirve para crear una estructura de arbol en la que se alojan los conceptos de la primera tabla.
Quiero hacer una consulta de forma que me muestre el concepto padre y luego los hijos que penden de él, y que estos estén ordenados por medio de la columna "posicion"
Esto me funciona:
Código SQL:
Ver original
SELECT conceptos.codigo FROM conceptos,relacion WHERE conceptos.id = 7 AND relacion.id_padre = 11 AND relacion.id_hijo = conceptos.id UNION ALL SELECT conceptos.codigo FROM conceptos,relacion WHERE relacion.id_padre = 7 AND conceptos.id = relacion.id_hijo
Pero no me deja añadir una clausula ORDER BY:
Código SQL:
Ver original
SELECT conceptos.codigo FROM conceptos,relacion WHERE conceptos.id = 7 AND relacion.id_padre = 11 AND relacion.id_hijo = conceptos.id UNION ALL SELECT conceptos.codigo FROM conceptos,relacion WHERE relacion.id_padre = 7 AND conceptos.id = relacion.id_hijo ORDER BY relacion.posicion --ESTO ME DA ERROR
ERROR: missing FROM-clause entry for table "relacion"
LINE 11: ORDER BY relacion.posicion
^
********** Error **********
ERROR: missing FROM-clause entry for table "relacion"
SQL state: 42P01
Character: 280
Muchas gracias por adelantado