Autor Tema: Tabla recursiva  (Leído 743 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Mariano Frezzotti

  • Newbie
  • *
  • Mensajes: 18
    • Ver Perfil
  • Institución: Facultad de Ciencias Exactas, Quimicas y Naturales
  • Nombre y apellido: Mariano Frezzotti
  • Sistema: SIU Toba
  • Utilizo algun sistéma del SIU: Sí
Tabla recursiva
« : junio 01, 2017, 02:11:21 pm »
Buenas. Yo tengo una tabla "servicios" de la siguiente forma.

Código: [Seleccionar]

CREATE TABLE es_final.servicios
(
  id_servicio bigserial NOT NULL,
  sigla_serv character varying(6) NOT NULL,
  nombre_serv character varying(30) NOT NULL,
  descripcion character varying(255) NOT NULL,
  tamano character varying(10),
  imagen bytea,
  parent_id_servicio bigint DEFAULT null,
  CONSTRAINT servicios_pk PRIMARY KEY (id_servicio),
  CONSTRAINT servicios_servicios_fk FOREIGN KEY (parent_id_servicio)
      REFERENCES es_final.servicios (id_servicio)
)


Mi idea es hacer una tabla recursiva, ya que un servicio puede ser padre de otros. El problema surge cuando cargo un servicio el cual no tiene padre. parent_id_servicio acepta valor null, pero cuando hago la consulta para traer los servicios que no tienen padre, no me muestra nada. Tampoco funciona que tome el valor 0 por la clave foránea.

¿Me pueden dar una manito?

Consulta SQL
Código: [Seleccionar]

SELECT * FROM es_final.servicios
WHERE parent_id_servicio=null;




nicolasdom

  • Moderador
  • *****
  • Mensajes: 669
    • Ver Perfil
    • SIU
    • Email
  • Institución: SIU
  • Nombre y apellido: Nicolas Dominguez Florit
  • Sistema: SIU-Mapuche
Re:Tabla recursiva
« Respuesta #1 : junio 07, 2017, 12:48:41 pm »
Proba con:
SELECT * FROM es_final.servicios WHERE parent_id_servicio IS null;

Saludos, Nico