FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Select con relaciones recursivas
Hola
Bueno tengo una tabla la cual tiene relacion a si misma mas o menos con esta estructura. Nombre de la tabla:prueba Campos:codigo, nombre fk_prueba fk_prueba es llave foranea de la misma tabla Algunos de los datos son los siguiente: codigo | descrip | fk_prueba -------+-------------+------------ 1 | PADRE1 | 1.1 | HIJO1 | 1 1.2 | HIJO2 | 1 1.2.1 | NIETO1 | 1.2 1.2.2 | NIETO2 | 1.2 2 | PADRE2 | 2.1 | HIJOa | 2 2.2 | HIJOb | 2 (8 rows) Necesito listar todos aquellos registros que no se encuentran como llave foranea. Intente esta consulta select * from prueba where codigo not in (select distinct fk_prueba from prueba); Sin embargo me retorna 0 (cero registros). Cambie la consulta por: select * from prueba where codigo in (select distinct fk_prueba from prueba); Esta consulta devuelve lo que creia correcto: codigo | descrip | fk_prueba -------+-------------+------------ 1 | PADRE1 | 1.2 | HIJO2 | 1 2 | PADRE2 | (3 rows) Intente otras maneras y no me funcionan Alguna idea???? |
|
|
|